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' ;
43import '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
914import { 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