import { ContextMenuBuilder } from '../contextMenuBuilder'; const thisMock = { runContextMenuAction: jest.fn(), createContextMenuItem: jest.fn() }; describe('ContextMenuBuilder', () => { it('should add a context menu item', () => { ContextMenuBuilder.getInstance().addContextMenuAction('menu item', thisMock); expect(chrome.contextMenus.create).toHaveBeenCalledWith( { contexts: ['launcher'], id: 'undefined_menu item', title: 'menu item' }, expect.any(Function) ); }); it('should only add the same item once', () => { ContextMenuBuilder.getInstance().addContextMenuAction('menu item', thisMock); ContextMenuBuilder.getInstance().addContextMenuAction('menu item', thisMock); expect(chrome.contextMenus.create).toHaveBeenCalledTimes(1); }); it('should remove a context menu item', () => { ContextMenuBuilder.getInstance().addContextMenuAction('menu item', thisMock); ContextMenuBuilder.getInstance().removeContextMenuItem('menu item'); expect(chrome.contextMenus.remove).toHaveBeenCalledWith('undefined_menu item'); }); });