@stryker-mutator/mocha-runner
Version:
A plugin to use the mocha test runner in Stryker, the JavaScript mutation testing framework
36 lines • 1.57 kB
JavaScript
import path from 'path';
import { createRequire } from 'module';
import Mocha from 'mocha';
const require = createRequire(import.meta.url);
const mochaRoot = path.dirname(require.resolve('mocha/package.json'));
// https://github.com/mochajs/mocha/blob/master/lib/cli/run-helpers.js#L132
// eslint-disable-next-line @typescript-eslint/no-require-imports
const runHelpers = require(`${mochaRoot}/lib/cli/run-helpers`);
let collectFiles;
/*
* If read, object containing parsed arguments
* @since 6.0.0'
* @see https://mochajs.org/api/module-lib_cli_options.html#.loadOptions
*/
// eslint-disable-next-line @typescript-eslint/no-require-imports
const loadOptions = require(`${mochaRoot}/lib/cli/options`).loadOptions;
const handleRequires = runHelpers.handleRequires;
const loadRootHooks = runHelpers.loadRootHooks; // loadRootHooks is available since mocha v7.2 and removed again in 8.0
collectFiles = runHelpers.handleFiles;
if (!collectFiles) {
// Might be moved: https://github.com/mochajs/mocha/commit/15b96afccaf508312445770e3af1c145d90b28c6#diff-39b692a81eb0c9f3614247af744ab4a8
// eslint-disable-next-line @typescript-eslint/no-require-imports
collectFiles = require(`${mochaRoot}/lib/cli/collect-files`);
}
/**
* Wraps Mocha class and require for testability
*/
export class LibWrapper {
}
LibWrapper.Mocha = Mocha;
LibWrapper.require = require;
LibWrapper.loadOptions = loadOptions;
LibWrapper.collectFiles = collectFiles;
LibWrapper.handleRequires = handleRequires;
LibWrapper.loadRootHooks = loadRootHooks;
//# sourceMappingURL=lib-wrapper.js.map