Skip to content

Commit 0049186

Browse files
committed
Drop eslint exclusion
1 parent f680f49 commit 0049186

4 files changed

Lines changed: 67 additions & 28 deletions

File tree

src/commons/backgroundMessaging/spec.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
/* eslint-disable jest/expect-expect */
2-
/* eslint-disable @typescript-eslint/no-explicit-any */
2+
import type { Browser } from 'webextension-polyfill';
33
import 'jest-webextension-mock';
44

5-
const mockBrowser =
6-
(globalThis as any).mockBrowser || (globalThis as any).browser || {};
5+
const _global = globalThis as unknown as {
6+
mockBrowser?: Browser;
7+
browser?: Browser;
8+
};
9+
10+
const mockBrowser = (_global.mockBrowser ||
11+
_global.browser ||
12+
({} as Browser)) as jest.Mocked<Browser>;
713

814
import { getOneOption } from '../options';
915

src/commons/options.spec.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* eslint-disable jest/expect-expect */
2-
/* eslint-disable @typescript-eslint/no-explicit-any */
2+
import type { Browser } from 'webextension-polyfill';
3+
34
import 'jest-webextension-mock';
45
import { browser } from './webExtensionsApi';
56
import {
@@ -10,11 +11,17 @@ import {
1011
} from './options';
1112
import { defaultOptionsFor } from './data/defaultOptions';
1213

14+
const _global = globalThis as unknown as {
15+
mockBrowser?: Browser;
16+
browser?: Browser;
17+
jest?: unknown;
18+
};
19+
1320
const mockBrowser =
14-
(browser as any) ||
15-
(globalThis as any).mockBrowser ||
16-
(globalThis as any).browser ||
17-
{};
21+
(browser as unknown as jest.Mocked<Browser>) ||
22+
(_global.mockBrowser as jest.Mocked<Browser>) ||
23+
(_global.browser as jest.Mocked<Browser>) ||
24+
({} as jest.Mocked<Browser>);
1825

1926
jest.mock('@commons/webExtensionsApi/browser');
2027
jest.mock('@commons/data/defaultOptions');
@@ -25,14 +32,9 @@ jest.mock('@commons/data/defaultOptions');
2532

2633
beforeEach(() => {
2734
mockBrowser.runtime = mockBrowser.runtime || {};
28-
mockBrowser.runtime.getURL =
29-
mockBrowser.runtime.getURL && (mockBrowser.runtime.getURL as any).mock
30-
? (mockBrowser.runtime.getURL as jest.Mock).mockReturnValue(
31-
'moz-extension://',
32-
) && (mockBrowser.runtime.getURL as jest.Mock)
33-
: (globalThis as any).jest
34-
? (globalThis as any).jest.fn().mockReturnValue('moz-extension://')
35-
: () => 'moz-extension://';
35+
(mockBrowser.runtime.getURL as jest.Mock) = jest
36+
.fn()
37+
.mockReturnValue('moz-extension://');
3638
});
3739

3840
describe('options', () => {

src/commons/webExtensionsApi/__mocks__/browser.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@ import 'jest-webextension-mock';
55
by `jest-webextension-mock`. This avoids duplicating mock factories
66
and keeps a single source of truth for the mock shape.
77
*/
8-
/* eslint-disable @typescript-eslint/no-explicit-any */
8+
import type { Browser } from 'webextension-polyfill';
99

10-
const mock =
11-
(globalThis as any).mockBrowser || (globalThis as any).browser || {};
10+
const _global = globalThis as unknown as {
11+
mockBrowser?: Browser;
12+
browser?: Browser;
13+
};
14+
15+
const mock = (_global.mockBrowser ||
16+
_global.browser ||
17+
({} as Browser)) as jest.Mocked<Browser>;
1218

1319
export default mock;

src/commons/webExtensionsApi/spec.ts

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
/* eslint-disable jest/expect-expect */
2-
/* eslint-disable @typescript-eslint/no-explicit-any */
3-
import type { Tabs } from 'webextension-polyfill';
2+
import type { Tabs, Browser } from 'webextension-polyfill';
43
import 'jest-webextension-mock';
54

6-
const mockBrowser =
7-
(globalThis as any).mockBrowser || (globalThis as any).browser || {};
5+
const _global = globalThis as unknown as {
6+
mockBrowser?: Browser;
7+
browser?: Browser;
8+
};
9+
10+
const mockBrowser = (_global.mockBrowser ||
11+
_global.browser ||
12+
({} as Browser)) as jest.Mocked<Browser>;
813

914
import { defaultOptionsFor } from '../data/defaultOptions';
1015

@@ -96,7 +101,11 @@ describe('webExtensionsApi', () => {
96101

97102
it('createNotification', async () => {
98103
(mockBrowser.notifications.create as jest.Mock).mockResolvedValue('id');
99-
mockBrowser.notifications.onClicked = { addListener: jest.fn() };
104+
mockBrowser.notifications.onClicked = {
105+
addListener: jest.fn(),
106+
removeListener: jest.fn(),
107+
hasListener: jest.fn(),
108+
} as unknown as typeof mockBrowser.notifications.onClicked;
100109

101110
await createNotification({ type: 'basic', title: 'foo', message: 'bar' });
102111

@@ -362,7 +371,11 @@ describe('webExtensionsApi', () => {
362371

363372
it('callWithInterval', () => {
364373
(mockBrowser.alarms.create as jest.Mock) = jest.fn();
365-
mockBrowser.alarms.onAlarm = { addListener: jest.fn() };
374+
mockBrowser.alarms.onAlarm = {
375+
addListener: jest.fn(),
376+
removeListener: jest.fn(),
377+
hasListener: jest.fn(),
378+
} as unknown as typeof mockBrowser.alarms.onAlarm;
366379

367380
callWithInterval('name', { periodInMinutes: 42 }, jest.fn());
368381

@@ -376,7 +389,11 @@ describe('webExtensionsApi', () => {
376389

377390
it('callDelayed', () => {
378391
(mockBrowser.alarms.create as jest.Mock) = jest.fn();
379-
mockBrowser.alarms.onAlarm = { addListener: jest.fn() };
392+
mockBrowser.alarms.onAlarm = {
393+
addListener: jest.fn(),
394+
removeListener: jest.fn(),
395+
hasListener: jest.fn(),
396+
} as unknown as typeof mockBrowser.alarms.onAlarm;
380397

381398
callDelayed({ delayInSeconds: 30 }, jest.fn());
382399

@@ -387,7 +404,11 @@ describe('webExtensionsApi', () => {
387404
});
388405

389406
it('listenToMessages', () => {
390-
mockBrowser.runtime.onMessage = { addListener: jest.fn() };
407+
mockBrowser.runtime.onMessage = {
408+
addListener: jest.fn(),
409+
removeListener: jest.fn(),
410+
hasListener: jest.fn(),
411+
} as unknown as typeof mockBrowser.runtime.onMessage;
391412

392413
listenToMessages<'SEARCH_TEXT_IN_PONTOON'>(
393414
'search-text-in-pontoon',
@@ -400,7 +421,11 @@ describe('webExtensionsApi', () => {
400421
});
401422

402423
it('listenToMessagesAndRespond', () => {
403-
mockBrowser.runtime.onMessage = { addListener: jest.fn() };
424+
mockBrowser.runtime.onMessage = {
425+
addListener: jest.fn(),
426+
removeListener: jest.fn(),
427+
hasListener: jest.fn(),
428+
} as unknown as typeof mockBrowser.runtime.onMessage;
404429

405430
listenToMessagesAndRespond<'UPDATE_TEAMS_LIST'>(
406431
'update-teams-list',

0 commit comments

Comments
 (0)