UNPKG

esmocha

Version:

[Mocha](https://mochajs.org) wrapper with built-in [typescript](https://github.com/node-loaders/loaders/tree/main/workspaces/esbuild), built-in [expect](https://jestjs.io/docs/expect) with [mock](https://github.com/node-loaders/loaders/tree/main/workspace

36 lines 1.51 kB
import { ModuleMocker } from 'jest-mock'; import { resolveCallerUrl } from './caller-resolve.js'; let quibble; const moduleMocker = new ModuleMocker(global); export const resetAllMocks = moduleMocker.resetAllMocks.bind(moduleMocker); export const fn = moduleMocker.fn.bind(moduleMocker); export const spyOn = moduleMocker.spyOn.bind(moduleMocker); export const restoreAllMocks = moduleMocker.restoreAllMocks.bind(moduleMocker); export const clearAllMocks = moduleMocker.clearAllMocks.bind(moduleMocker); export const isMockFunction = moduleMocker.isMockFunction.bind(moduleMocker); export const reset = (hard) => { quibble?.reset(hard); }; export async function mock(specifier, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment actual = import(specifier)) { if (specifier.startsWith('.')) { // Resolve relative paths since quibble will resolve having this file as the caller specifier = new URL(specifier, resolveCallerUrl()).href; } let mockReturn; if ('then' in actual) { const metadata = moduleMocker.getMetadata(await actual); mockReturn = moduleMocker.generateFromMetadata(metadata); } else { mockReturn = actual; } const quibbleModule = await import('quibble'); quibble = quibbleModule.default; quibble(specifier, mockReturn); // eslint-disable-next-line @typescript-eslint/no-unsafe-argument await quibble.esm(specifier, mockReturn); return mockReturn; } //# sourceMappingURL=jest-mock.js.map