UNPKG

@stryker-mutator/jest-runner

Version:

A plugin to use the jest test runner and framework in Stryker, the JavaScript mutation testing framework

29 lines 1.72 kB
import { commonTokens, tokens } from '@stryker-mutator/api/plugin'; import semver from 'semver'; import { pluginTokens } from '../plugin-di.js'; import { JestLessThan25TestAdapter } from './jest-less-than-25-adapter.js'; import { JestGreaterThan25TestAdapter } from './jest-greater-than-25-adapter.js'; export function jestTestAdapterFactory(log, jestWrapper, options, injector) { const version = jestWrapper.getVersion(); log.debug('Detected Jest version %s', version); guardJestVersion(version, options, log); if (semver.satisfies(version, '<25.0.0')) { return injector.injectClass(JestLessThan25TestAdapter); } else { return injector.injectClass(JestGreaterThan25TestAdapter); } } jestTestAdapterFactory.inject = tokens(commonTokens.logger, pluginTokens.jestWrapper, commonTokens.options, commonTokens.injector); function guardJestVersion(jest, options, log) { if (semver.satisfies(jest, '<22.0.0')) { throw new Error(`You need Jest version >= 22.0.0 to use the @stryker-mutator/jest-runner plugin, found ${jest}`); } else if (semver.satisfies(jest, '<24')) { if (options.coverageAnalysis !== 'off') { throw new Error(`You need Jest version >= 24.0.0 to use the @stryker-mutator/jest-runner with "coverageAnalysis": "${options.coverageAnalysis}", you're currently using version 23.0.0. Please upgrade your jest version, or set "coverageAnalysis": "off".`); } log.warn('[DEPRECATED] Support for Jest version < 24 is deprecated and will be removed in the next major version of Stryker, please upgrade your jest version (your current version is %s).', jest); } } //# sourceMappingURL=jest-test-adapter-factory.js.map