mockzilla-webextension
Version:
A mocking toolkit for web-extensions leveraging the power of TypeScript to enhance your jest experience.
30 lines (29 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mockzilla_1 = require("mockzilla");
const [, mockBrowser, mockBrowserRootNode] = (0, mockzilla_1.deepMock)("browser", false);
global.mockBrowser = mockBrowser;
global.mockBrowserRootNode = mockBrowserRootNode;
const proxy = new Proxy({}, {
get: (...args) => {
if (args[1] === "__esModule")
return false;
return mockBrowserRootNode.traps.get(...args);
},
// forward the rest to mockBrowserRootNode traps
ownKeys: (...args) => mockBrowserRootNode.traps.ownKeys(...args),
has: (...args) => mockBrowserRootNode.traps.has(...args),
apply: (...args) => mockBrowserRootNode.traps.apply(...args),
getPrototypeOf: (...args) => mockBrowserRootNode.traps.getPrototypeOf(...args),
setPrototypeOf: (...args) => mockBrowserRootNode.traps.setPrototypeOf(...args),
isExtensible: (...args) => mockBrowserRootNode.traps.isExtensible(...args),
preventExtensions: (...args) => mockBrowserRootNode.traps.preventExtensions(...args),
set: (...args) => mockBrowserRootNode.traps.set(...args),
deleteProperty: (...args) => mockBrowserRootNode.traps.deleteProperty(...args),
construct: (...args) => mockBrowserRootNode.traps.construct(...args),
getOwnPropertyDescriptor: (...args) => mockBrowserRootNode.traps.getOwnPropertyDescriptor(...args),
defineProperty: (...args) => mockBrowserRootNode.traps.defineProperty(...args),
});
jest.mock("webextension-polyfill", () => proxy);
beforeEach(() => mockBrowserRootNode.enable());
afterEach(() => mockBrowserRootNode.verifyAndDisable());