UNPKG

@stryker-mutator/jest-runner

Version:

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

46 lines (41 loc) 1.3 kB
import type { Config } from '@jest/types'; import { JestRunResult } from '../jest-run-result.js'; import { pluginTokens } from '../plugin-di.js'; import { JestWrapper } from '../utils/jest-wrapper.js'; export interface RunSettings { jestConfig: Config.InitialOptions; testNamePattern?: string; fileNamesUnderTest?: string[]; testFiles?: string[]; testLocationInResults?: boolean; } export class JestTestAdapter { public static readonly inject = [pluginTokens.jestWrapper] as const; constructor(private readonly jestWrapper: JestWrapper) {} public async run({ jestConfig, fileNamesUnderTest, testFiles, testNamePattern, testLocationInResults, }: RunSettings): Promise<JestRunResult> { const config = JSON.stringify(jestConfig); const testFilesToRun = testFiles ?? fileNamesUnderTest ?? []; const shouldFindRelatedTests = !testFiles && !!fileNamesUnderTest; const result = await this.jestWrapper.runCLI( { $0: 'stryker', _: testFilesToRun, findRelatedTests: shouldFindRelatedTests, config, runInBand: true, silent: true, passWithNoTests: true, testNamePattern, testLocationInResults, }, [jestConfig.rootDir ?? process.cwd()], ); return result; } }