@d-es-ign/stryker-js-jest-runner 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +11 -0
- package/dist/schema/jest-runner-options.json +43 -0
- package/dist/src/config-loaders/custom-jest-config-loader.d.ts +32 -0
- package/dist/src/config-loaders/custom-jest-config-loader.d.ts.map +1 -0
- package/dist/src/config-loaders/custom-jest-config-loader.js +98 -0
- package/dist/src/config-loaders/custom-jest-config-loader.js.map +1 -0
- package/dist/src/config-loaders/index.d.ts +11 -0
- package/dist/src/config-loaders/index.d.ts.map +1 -0
- package/dist/src/config-loaders/index.js +24 -0
- package/dist/src/config-loaders/index.js.map +1 -0
- package/dist/src/config-loaders/jest-config-loader.d.ts +12 -0
- package/dist/src/config-loaders/jest-config-loader.d.ts.map +1 -0
- package/dist/src/config-loaders/jest-config-loader.js +9 -0
- package/dist/src/config-loaders/jest-config-loader.js.map +1 -0
- package/dist/src/config-loaders/node-require-function.d.ts +2 -0
- package/dist/src/config-loaders/node-require-function.d.ts.map +1 -0
- package/dist/src/config-loaders/node-require-function.js +2 -0
- package/dist/src/config-loaders/node-require-function.js.map +1 -0
- package/dist/src/config-loaders/react-scripts-jest-config-loader.d.ts +17 -0
- package/dist/src/config-loaders/react-scripts-jest-config-loader.d.ts.map +1 -0
- package/dist/src/config-loaders/react-scripts-jest-config-loader.js +67 -0
- package/dist/src/config-loaders/react-scripts-jest-config-loader.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/jest-override-options.d.ts +3 -0
- package/dist/src/jest-override-options.d.ts.map +1 -0
- package/dist/src/jest-override-options.js +20 -0
- package/dist/src/jest-override-options.js.map +1 -0
- package/dist/src/jest-plugins/import-jest-environment.cjs +10 -0
- package/dist/src/jest-plugins/import-jest-environment.cjs.map +1 -0
- package/dist/src/jest-plugins/import-jest-environment.d.cts +3 -0
- package/dist/src/jest-plugins/import-jest-environment.d.cts.map +1 -0
- package/dist/src/jest-plugins/index.d.ts +3 -0
- package/dist/src/jest-plugins/index.d.ts.map +1 -0
- package/dist/src/jest-plugins/index.js +3 -0
- package/dist/src/jest-plugins/index.js.map +1 -0
- package/dist/src/jest-plugins/jasmine2-setup-coverage-analysis.cjs +10 -0
- package/dist/src/jest-plugins/jasmine2-setup-coverage-analysis.cjs.map +1 -0
- package/dist/src/jest-plugins/jasmine2-setup-coverage-analysis.d.cts +2 -0
- package/dist/src/jest-plugins/jasmine2-setup-coverage-analysis.d.cts.map +1 -0
- package/dist/src/jest-plugins/jest-environment-generic.cjs +10 -0
- package/dist/src/jest-plugins/jest-environment-generic.cjs.map +1 -0
- package/dist/src/jest-plugins/jest-environment-generic.d.cts +4 -0
- package/dist/src/jest-plugins/jest-environment-generic.d.cts.map +1 -0
- package/dist/src/jest-plugins/jest-environment-jsdom-sixteen.cjs +6 -0
- package/dist/src/jest-plugins/jest-environment-jsdom-sixteen.cjs.map +1 -0
- package/dist/src/jest-plugins/jest-environment-jsdom-sixteen.d.cts +3 -0
- package/dist/src/jest-plugins/jest-environment-jsdom-sixteen.d.cts.map +1 -0
- package/dist/src/jest-plugins/jest-environment-jsdom.cjs +6 -0
- package/dist/src/jest-plugins/jest-environment-jsdom.cjs.map +1 -0
- package/dist/src/jest-plugins/jest-environment-jsdom.d.cts +3 -0
- package/dist/src/jest-plugins/jest-environment-jsdom.d.cts.map +1 -0
- package/dist/src/jest-plugins/jest-environment-node.cjs +6 -0
- package/dist/src/jest-plugins/jest-environment-node.cjs.map +1 -0
- package/dist/src/jest-plugins/jest-environment-node.d.cts +3 -0
- package/dist/src/jest-plugins/jest-environment-node.d.cts.map +1 -0
- package/dist/src/jest-plugins/messaging.cjs +22 -0
- package/dist/src/jest-plugins/messaging.cjs.map +1 -0
- package/dist/src/jest-plugins/messaging.d.cts +13 -0
- package/dist/src/jest-plugins/messaging.d.cts.map +1 -0
- package/dist/src/jest-plugins/mixin-jest-environment.cjs +53 -0
- package/dist/src/jest-plugins/mixin-jest-environment.cjs.map +1 -0
- package/dist/src/jest-plugins/mixin-jest-environment.d.cts +7 -0
- package/dist/src/jest-plugins/mixin-jest-environment.d.cts.map +1 -0
- package/dist/src/jest-plugins/with-coverage-analysis.d.ts +6 -0
- package/dist/src/jest-plugins/with-coverage-analysis.d.ts.map +1 -0
- package/dist/src/jest-plugins/with-coverage-analysis.js +80 -0
- package/dist/src/jest-plugins/with-coverage-analysis.js.map +1 -0
- package/dist/src/jest-run-result.d.ts +7 -0
- package/dist/src/jest-run-result.d.ts.map +1 -0
- package/dist/src/jest-run-result.js +2 -0
- package/dist/src/jest-run-result.js.map +1 -0
- package/dist/src/jest-runner-options-with-stryker-options.d.ts +5 -0
- package/dist/src/jest-runner-options-with-stryker-options.d.ts.map +1 -0
- package/dist/src/jest-runner-options-with-stryker-options.js +2 -0
- package/dist/src/jest-runner-options-with-stryker-options.js.map +1 -0
- package/dist/src/jest-test-adapters/index.d.ts +3 -0
- package/dist/src/jest-test-adapters/index.d.ts.map +1 -0
- package/dist/src/jest-test-adapters/index.js +3 -0
- package/dist/src/jest-test-adapters/index.js.map +1 -0
- package/dist/src/jest-test-adapters/jest-test-adapter-factory.d.ts +11 -0
- package/dist/src/jest-test-adapters/jest-test-adapter-factory.d.ts.map +1 -0
- package/dist/src/jest-test-adapters/jest-test-adapter-factory.js +26 -0
- package/dist/src/jest-test-adapters/jest-test-adapter-factory.js.map +1 -0
- package/dist/src/jest-test-adapters/jest-test-adapter.d.ts +17 -0
- package/dist/src/jest-test-adapters/jest-test-adapter.d.ts.map +1 -0
- package/dist/src/jest-test-adapters/jest-test-adapter.js +26 -0
- package/dist/src/jest-test-adapters/jest-test-adapter.js.map +1 -0
- package/dist/src/jest-test-runner.d.ts +41 -0
- package/dist/src/jest-test-runner.d.ts.map +1 -0
- package/dist/src/jest-test-runner.js +247 -0
- package/dist/src/jest-test-runner.js.map +1 -0
- package/dist/src/plugin-di.d.ts +22 -0
- package/dist/src/plugin-di.d.ts.map +1 -0
- package/dist/src/plugin-di.js +12 -0
- package/dist/src/plugin-di.js.map +1 -0
- package/dist/src/utils/index.d.ts +4 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +4 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/jest-config-wrapper.d.ts +8 -0
- package/dist/src/utils/jest-config-wrapper.d.ts.map +1 -0
- package/dist/src/utils/jest-config-wrapper.js +17 -0
- package/dist/src/utils/jest-config-wrapper.js.map +1 -0
- package/dist/src/utils/jest-wrapper.d.ts +21 -0
- package/dist/src/utils/jest-wrapper.d.ts.map +1 -0
- package/dist/src/utils/jest-wrapper.js +34 -0
- package/dist/src/utils/jest-wrapper.js.map +1 -0
- package/dist/src/utils/verify-all-test-files-have-coverage.d.ts +8 -0
- package/dist/src/utils/verify-all-test-files-have-coverage.d.ts.map +1 -0
- package/dist/src/utils/verify-all-test-files-have-coverage.js +45 -0
- package/dist/src/utils/verify-all-test-files-have-coverage.js.map +1 -0
- package/dist/src-generated/jest-runner-options.d.ts +37 -0
- package/dist/src-generated/jest-runner-options.d.ts.map +1 -0
- package/dist/src-generated/jest-runner-options.js +7 -0
- package/dist/src-generated/jest-runner-options.js.map +1 -0
- package/package.json +98 -0
- package/src/config-loaders/custom-jest-config-loader.ts +146 -0
- package/src/config-loaders/index.ts +48 -0
- package/src/config-loaders/jest-config-loader.ts +18 -0
- package/src/config-loaders/node-require-function.ts +1 -0
- package/src/config-loaders/react-scripts-jest-config-loader.ts +105 -0
- package/src/index.ts +23 -0
- package/src/jest-override-options.ts +27 -0
- package/src/jest-plugins/import-jest-environment.cts +12 -0
- package/src/jest-plugins/index.ts +5 -0
- package/src/jest-plugins/jasmine2-setup-coverage-analysis.cts +8 -0
- package/src/jest-plugins/jest-environment-generic.cts +17 -0
- package/src/jest-plugins/jest-environment-jsdom-sixteen.cts +7 -0
- package/src/jest-plugins/jest-environment-jsdom.cts +5 -0
- package/src/jest-plugins/jest-environment-node.cts +5 -0
- package/src/jest-plugins/messaging.cts +27 -0
- package/src/jest-plugins/mixin-jest-environment.cts +69 -0
- package/src/jest-plugins/with-coverage-analysis.ts +117 -0
- package/src/jest-run-result.ts +7 -0
- package/src/jest-runner-options-with-stryker-options.ts +6 -0
- package/src/jest-test-adapters/index.ts +2 -0
- package/src/jest-test-adapters/jest-test-adapter-factory.ts +58 -0
- package/src/jest-test-adapters/jest-test-adapter.ts +45 -0
- package/src/jest-test-runner.ts +385 -0
- package/src/plugin-di.ts +24 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/jest-config-wrapper.ts +30 -0
- package/src/utils/jest-wrapper.ts +55 -0
- package/src/utils/verify-all-test-files-have-coverage.ts +56 -0
- package/src-generated/jest-runner-options.ts +38 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const JEST_OVERRIDE_OPTIONS = Object.freeze({
|
|
2
|
+
// Prevent the user from using his or her own testResultProcessor because this might
|
|
3
|
+
// Mess with the way Stryker gets the results
|
|
4
|
+
testResultsProcessor: undefined,
|
|
5
|
+
// Disable code coverage, it is not used in Stryker and will only slow down the test runs
|
|
6
|
+
collectCoverage: false,
|
|
7
|
+
// Disable verbose logging, this will only slow down Stryker test runs
|
|
8
|
+
verbose: false,
|
|
9
|
+
// Disable notifications for test results, this will otherwise show a notification about
|
|
10
|
+
// the results each time Stryker runs the tests
|
|
11
|
+
notify: false,
|
|
12
|
+
// Bail isn't supported programmatically in jest
|
|
13
|
+
// see https://github.com/facebook/jest/issues/11766
|
|
14
|
+
bail: false,
|
|
15
|
+
/**
|
|
16
|
+
* Disable reporters, they only way us down.
|
|
17
|
+
*/
|
|
18
|
+
reporters: [],
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=jest-override-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-override-options.js","sourceRoot":"","sources":["../../src/jest-override-options.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAChC,MAAM,CAAC,MAAM,CAAC;IACZ,oFAAoF;IACpF,6CAA6C;IAC7C,oBAAoB,EAAE,SAAS;IAE/B,yFAAyF;IACzF,eAAe,EAAE,KAAK;IAEtB,sEAAsE;IACtE,OAAO,EAAE,KAAK;IAEd,wFAAwF;IACxF,+CAA+C;IAC/C,MAAM,EAAE,KAAK;IAEb,gDAAgD;IAChD,oDAAoD;IACpD,IAAI,EAAE,KAAK;IAEX;;OAEG;IACH,SAAS,EAAE,EAAE;CACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadJestEnvironment = loadJestEnvironment;
|
|
4
|
+
const messaging_cjs_1 = require("./messaging.cjs");
|
|
5
|
+
function loadJestEnvironment(name) {
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
|
+
const jestEnvironmentModule = require(require.resolve(name, { paths: [messaging_cjs_1.state.resolveFromDirectory] }));
|
|
8
|
+
return jestEnvironmentModule.default ?? jestEnvironmentModule;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=import-jest-environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-jest-environment.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/import-jest-environment.cts"],"names":[],"mappings":";;AAIA,kDAOC;AATD,mDAAwC;AAExC,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,iEAAiE;IACjE,MAAM,qBAAqB,GAAG,OAAO,CACnC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,qBAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAC/D,CAAC;IAEF,OAAO,qBAAqB,CAAC,OAAO,IAAI,qBAAqB,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-jest-environment.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/import-jest-environment.cts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,eAAe,CAOxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jest-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jest-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const instrumenterContext = global[global.__strykerGlobalNamespace__] ??
|
|
4
|
+
(global[global.__strykerGlobalNamespace__] = {});
|
|
5
|
+
global.jasmine.getEnv().addReporter({
|
|
6
|
+
specStarted(spec) {
|
|
7
|
+
instrumenterContext.currentTestId = spec.fullName;
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=jasmine2-setup-coverage-analysis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jasmine2-setup-coverage-analysis.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/jasmine2-setup-coverage-analysis.cts"],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GACvB,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC;IACzC,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,CAAC;AACnD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC;IAClC,WAAW,CAAC,IAAI;QACd,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jasmine2-setup-coverage-analysis.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/jasmine2-setup-coverage-analysis.cts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const messaging_cjs_1 = require("./messaging.cjs");
|
|
3
|
+
const import_jest_environment_cjs_1 = require("./import-jest-environment.cjs");
|
|
4
|
+
const mixin_jest_environment_cjs_1 = require("./mixin-jest-environment.cjs");
|
|
5
|
+
module.exports = function jestEnvironmentGeneric(...args) {
|
|
6
|
+
const JestEnvironmentImpl = (0, import_jest_environment_cjs_1.loadJestEnvironment)(messaging_cjs_1.state.jestEnvironment);
|
|
7
|
+
const StrykerAwareJestEnvironment = (0, mixin_jest_environment_cjs_1.mixinJestEnvironment)(JestEnvironmentImpl);
|
|
8
|
+
return new StrykerAwareJestEnvironment(...args);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=jest-environment-generic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-generic.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-generic.cts"],"names":[],"mappings":";AAMA,mDAAwC;AACxC,+EAAoE;AACpE,6EAAoE;AAEpE,iBAAS,SAAS,sBAAsB,CACtC,GAAG,IAAiD;IAEpD,MAAM,mBAAmB,GAAG,IAAA,iDAAmB,EAAC,qBAAK,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,2BAA2B,GAAG,IAAA,iDAAoB,EAAC,mBAAmB,CAAC,CAAC;IAC9E,OAAO,IAAI,2BAA2B,CAAC,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { JestEnvironmentConfig, JestEnvironment, EnvironmentContext } from '@jest/environment';
|
|
2
|
+
declare const _default: (...args: [JestEnvironmentConfig, EnvironmentContext]) => JestEnvironment;
|
|
3
|
+
export = _default;
|
|
4
|
+
//# sourceMappingURL=jest-environment-generic.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-generic.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-generic.cts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;yBAOzB,GAAG,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,KACnD,eAAe;AAFlB,kBAME"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const import_jest_environment_cjs_1 = require("./import-jest-environment.cjs");
|
|
3
|
+
const mixin_jest_environment_cjs_1 = require("./mixin-jest-environment.cjs");
|
|
4
|
+
const JestEnvironmentImpl = (0, import_jest_environment_cjs_1.loadJestEnvironment)('jest-environment-jsdom-sixteen');
|
|
5
|
+
module.exports = (0, mixin_jest_environment_cjs_1.mixinJestEnvironment)(JestEnvironmentImpl);
|
|
6
|
+
//# sourceMappingURL=jest-environment-jsdom-sixteen.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-jsdom-sixteen.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-jsdom-sixteen.cts"],"names":[],"mappings":";AAAA,+EAAoE;AACpE,6EAAoE;AAEpE,MAAM,mBAAmB,GAAG,IAAA,iDAAmB,EAC7C,gCAAgC,CACjC,CAAC;AACF,iBAAS,IAAA,iDAAoB,EAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-jsdom-sixteen.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-jsdom-sixteen.cts"],"names":[],"mappings":";AAMA,kBAAmD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const import_jest_environment_cjs_1 = require("./import-jest-environment.cjs");
|
|
3
|
+
const mixin_jest_environment_cjs_1 = require("./mixin-jest-environment.cjs");
|
|
4
|
+
const JestEnvironmentImpl = (0, import_jest_environment_cjs_1.loadJestEnvironment)('jest-environment-jsdom');
|
|
5
|
+
module.exports = (0, mixin_jest_environment_cjs_1.mixinJestEnvironment)(JestEnvironmentImpl);
|
|
6
|
+
//# sourceMappingURL=jest-environment-jsdom.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-jsdom.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-jsdom.cts"],"names":[],"mappings":";AAAA,+EAAoE;AACpE,6EAAoE;AAEpE,MAAM,mBAAmB,GAAG,IAAA,iDAAmB,EAAC,wBAAwB,CAAC,CAAC;AAC1E,iBAAS,IAAA,iDAAoB,EAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-jsdom.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-jsdom.cts"],"names":[],"mappings":";AAIA,kBAAmD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const import_jest_environment_cjs_1 = require("./import-jest-environment.cjs");
|
|
3
|
+
const mixin_jest_environment_cjs_1 = require("./mixin-jest-environment.cjs");
|
|
4
|
+
const JestEnvironmentImpl = (0, import_jest_environment_cjs_1.loadJestEnvironment)('jest-environment-node');
|
|
5
|
+
module.exports = (0, mixin_jest_environment_cjs_1.mixinJestEnvironment)(JestEnvironmentImpl);
|
|
6
|
+
//# sourceMappingURL=jest-environment-node.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-node.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-node.cts"],"names":[],"mappings":";AAAA,+EAAoE;AACpE,6EAAoE;AAEpE,MAAM,mBAAmB,GAAG,IAAA,iDAAmB,EAAC,uBAAuB,CAAC,CAAC;AACzE,iBAAS,IAAA,iDAAoB,EAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-environment-node.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/jest-environment-node.cts"],"names":[],"mappings":";AAIA,kBAAmD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.state = void 0;
|
|
4
|
+
class State {
|
|
5
|
+
instrumenterContext;
|
|
6
|
+
testFilesWithStrykerEnvironment = new Set();
|
|
7
|
+
coverageAnalysis;
|
|
8
|
+
jestEnvironment;
|
|
9
|
+
resolveFromDirectory;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.clear();
|
|
12
|
+
}
|
|
13
|
+
clear() {
|
|
14
|
+
this.testFilesWithStrykerEnvironment.clear();
|
|
15
|
+
this.instrumenterContext = {};
|
|
16
|
+
this.coverageAnalysis = 'off';
|
|
17
|
+
this.jestEnvironment = 'jest-environment-node';
|
|
18
|
+
this.resolveFromDirectory = process.cwd();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.state = new State();
|
|
22
|
+
//# sourceMappingURL=messaging.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/messaging.cts"],"names":[],"mappings":";;;AAMA,MAAM,KAAK;IACF,mBAAmB,CAAuB;IAC1C,+BAA+B,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,gBAAgB,CAAoB;IACpC,eAAe,CAAU;IACzB,oBAAoB,CAAU;IAErC;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC;QAC/C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;CACF;AAEY,QAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CoverageAnalysis, InstrumenterContext } from '@stryker-mutator/api/core';
|
|
2
|
+
declare class State {
|
|
3
|
+
instrumenterContext: InstrumenterContext;
|
|
4
|
+
testFilesWithStrykerEnvironment: Set<string>;
|
|
5
|
+
coverageAnalysis: CoverageAnalysis;
|
|
6
|
+
jestEnvironment: string;
|
|
7
|
+
resolveFromDirectory: string;
|
|
8
|
+
constructor();
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const state: State;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=messaging.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/messaging.cts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,cAAM,KAAK;IACF,mBAAmB,EAAG,mBAAmB,CAAC;IAC1C,+BAA+B,cAAqB;IACpD,gBAAgB,EAAG,gBAAgB,CAAC;IACpC,eAAe,EAAG,MAAM,CAAC;IACzB,oBAAoB,EAAG,MAAM,CAAC;;IAM9B,KAAK;CAOb;AAED,eAAO,MAAM,KAAK,OAAc,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mixinJestEnvironment = mixinJestEnvironment;
|
|
4
|
+
const messaging_cjs_1 = require("./messaging.cjs");
|
|
5
|
+
function fullNameDescribeBlock(describe) {
|
|
6
|
+
if (describe.parent) {
|
|
7
|
+
const parentName = fullNameDescribeBlock(describe.parent);
|
|
8
|
+
return `${parentName} ${describe.name}`.trimStart();
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return ''; // describe.name === "ROOT_DESCRIBE_BLOCK"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function fullName(test) {
|
|
15
|
+
const suiteName = fullNameDescribeBlock(test.parent);
|
|
16
|
+
return `${suiteName} ${test.name}`.trimStart();
|
|
17
|
+
}
|
|
18
|
+
const STRYKER_JEST_ENV = Symbol('StrykerJestEnvironment');
|
|
19
|
+
function mixinJestEnvironment(JestEnvironmentClass) {
|
|
20
|
+
if (JestEnvironmentClass[STRYKER_JEST_ENV]) {
|
|
21
|
+
return JestEnvironmentClass;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
class StrykerJestEnvironment extends JestEnvironmentClass {
|
|
25
|
+
/**
|
|
26
|
+
* The shared instrumenter context with the test environment (the `__stryker__` global variable)
|
|
27
|
+
*/
|
|
28
|
+
#strykerContext;
|
|
29
|
+
#innerHandleTestEvent;
|
|
30
|
+
static [STRYKER_JEST_ENV] = true;
|
|
31
|
+
constructor(config, context) {
|
|
32
|
+
super(config, context);
|
|
33
|
+
this.#innerHandleTestEvent = this.handleTestEvent; // grab the "handle test event", since it might be a class property
|
|
34
|
+
this.#strykerContext = this.global[this.global.__strykerGlobalNamespace__ ?? '__stryker__'] = messaging_cjs_1.state.instrumenterContext;
|
|
35
|
+
messaging_cjs_1.state.testFilesWithStrykerEnvironment.add(context.testPath);
|
|
36
|
+
this.handleTestEvent = (async (event, eventState) => {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
38
|
+
await this.#innerHandleTestEvent?.(event, eventState);
|
|
39
|
+
if (messaging_cjs_1.state.coverageAnalysis === 'perTest') {
|
|
40
|
+
if (event.name === 'test_start') {
|
|
41
|
+
this.#strykerContext.currentTestId = fullName(event.test);
|
|
42
|
+
}
|
|
43
|
+
else if (event.name === 'test_done') {
|
|
44
|
+
this.#strykerContext.currentTestId = undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return StrykerJestEnvironment;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=mixin-jest-environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixin-jest-environment.cjs","sourceRoot":"","sources":["../../../src/jest-plugins/mixin-jest-environment.cts"],"names":[],"mappings":";;AA2BA,oDAyCC;AA3DD,mDAAwC;AAExC,SAAS,qBAAqB,CAAC,QAA8B;IAC3D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,GAAG,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,0CAA0C;IACvD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAsB;IACtC,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAE1D,SAAgB,oBAAoB,CAClC,oBAAuD;IAEvD,IAAI,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,sBAAuB,SAAQ,oBAAoB;YACvD;;eAEG;YACM,eAAe,CAAsB;YACrC,qBAAqB,CAAqC;YAE5D,MAAM,CAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YAEjD,YAAY,MAA6B,EAAE,OAA2B;gBACpE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,mEAAmE;gBACtH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAChC,IAAI,CAAC,MAAM,CAAC,0BAA0B,IAAI,aAAa,CACxD,GAAG,qBAAK,CAAC,mBAAmB,CAAC;gBAC9B,qBAAK,CAAC,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAE5D,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,EAC3B,KAAmB,EACnB,UAAwB,EACxB,EAAE;oBACF,iEAAiE;oBACjE,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAY,EAAE,UAAU,CAAC,CAAC;oBAC7D,IAAI,qBAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;4BAChC,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC5D,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BACtC,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,SAAS,CAAC;wBACjD,CAAC;oBACH,CAAC;gBACH,CAAC,CAA+B,CAAC;YACnC,CAAC;;QAEH,OAAO,sBAAsB,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JestEnvironment } from '@jest/environment';
|
|
2
|
+
declare const STRYKER_JEST_ENV: unique symbol;
|
|
3
|
+
export declare function mixinJestEnvironment<T extends typeof JestEnvironment>(JestEnvironmentClass: T & {
|
|
4
|
+
[STRYKER_JEST_ENV]?: true;
|
|
5
|
+
}): T;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=mixin-jest-environment.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixin-jest-environment.d.cts","sourceRoot":"","sources":["../../../src/jest-plugins/mixin-jest-environment.cts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAqB3B,QAAA,MAAM,gBAAgB,eAAmC,CAAC;AAE1D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EACnE,oBAAoB,EAAE,CAAC,GAAG;IAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAA;CAAE,GACtD,CAAC,CAuCH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Config } from '@jest/types';
|
|
2
|
+
import { CoverageAnalysis } from '@stryker-mutator/api/core';
|
|
3
|
+
import { JestWrapper } from '../utils/jest-wrapper.js';
|
|
4
|
+
export declare function withCoverageAnalysis(jestConfig: Config.InitialOptions, coverageAnalysis: CoverageAnalysis, jestWrapper: JestWrapper): Config.InitialOptions;
|
|
5
|
+
export declare function withHitLimit(jestConfig: Config.InitialOptions, hitLimit: number | undefined, jestWrapper: JestWrapper): Config.InitialOptions;
|
|
6
|
+
//# sourceMappingURL=with-coverage-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-coverage-analysis.d.ts","sourceRoot":"","sources":["../../../src/jest-plugins/with-coverage-analysis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA4BvD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,CAAC,cAAc,EACjC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,GACvB,MAAM,CAAC,cAAc,CAYvB;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,CAAC,cAAc,EACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,GACvB,MAAM,CAAC,cAAc,CASvB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { fileURLToPath, URL } from 'url';
|
|
3
|
+
import { propertyPath } from '@stryker-mutator/util';
|
|
4
|
+
import semver from 'semver';
|
|
5
|
+
import { state } from './messaging.cjs';
|
|
6
|
+
const jestEnvironmentGenericFileName = fileURLToPath(new URL('./jest-environment-generic.cjs', import.meta.url));
|
|
7
|
+
/**
|
|
8
|
+
* Jest's defaults.
|
|
9
|
+
* @see https://jestjs.io/docs/en/configuration
|
|
10
|
+
*/
|
|
11
|
+
function getJestDefaults(jestWrapper) {
|
|
12
|
+
// New defaults since 27: https://jestjs.io/blog/2021/05/25/jest-27
|
|
13
|
+
if (semver.satisfies(semver.coerce(jestWrapper.getVersion()), '>=27')) {
|
|
14
|
+
return {
|
|
15
|
+
testRunner: 'jest-circus/runner',
|
|
16
|
+
testEnvironment: 'node',
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return {
|
|
21
|
+
// the defaults before v27
|
|
22
|
+
testRunner: 'jest-jasmine2',
|
|
23
|
+
testEnvironment: 'jsdom',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function withCoverageAnalysis(jestConfig, coverageAnalysis, jestWrapper) {
|
|
28
|
+
// Override with Stryker specific test environment to capture coverage analysis
|
|
29
|
+
if (coverageAnalysis === 'off') {
|
|
30
|
+
return jestConfig;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const overrides = {};
|
|
34
|
+
overrideEnvironment(jestConfig, overrides, jestWrapper);
|
|
35
|
+
if (coverageAnalysis === 'perTest') {
|
|
36
|
+
setupFramework(jestConfig, overrides, jestWrapper);
|
|
37
|
+
}
|
|
38
|
+
return { ...jestConfig, ...overrides };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function withHitLimit(jestConfig, hitLimit, jestWrapper) {
|
|
42
|
+
// Override with Stryker specific test environment to capture coverage analysis
|
|
43
|
+
if (typeof hitLimit === 'number') {
|
|
44
|
+
const overrides = {};
|
|
45
|
+
overrideEnvironment(jestConfig, overrides, jestWrapper);
|
|
46
|
+
return { ...jestConfig, ...overrides };
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return jestConfig;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Setup the test framework (aka "runner" in jest terms) for "perTest" coverage analysis.
|
|
54
|
+
* Will use monkey patching for framework "jest-jasmine2", and will assume the test environment handles events when "jest-circus"
|
|
55
|
+
*/
|
|
56
|
+
function setupFramework(jestConfig, overrides, jestWrapper) {
|
|
57
|
+
const testRunner = jestConfig.testRunner ?? getJestDefaults(jestWrapper).testRunner;
|
|
58
|
+
if (testRunner === 'jest-jasmine2') {
|
|
59
|
+
overrides.setupFilesAfterEnv = [
|
|
60
|
+
path.resolve(path.dirname(fileURLToPath(import.meta.url)), './jasmine2-setup-coverage-analysis.cjs'),
|
|
61
|
+
...(jestConfig.setupFilesAfterEnv ?? []),
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
else if (!testRunner.includes('jest-circus')) {
|
|
65
|
+
// 'jest-circus/runner' is supported, via handleTestEvent, see https://jestjs.io/docs/en/configuration#testenvironment-string
|
|
66
|
+
// Use includes here, since "react-scripts" will specify the full path to `jest-circus`, see https://github.com/stryker-mutator/stryker-js/issues/2789
|
|
67
|
+
throw new Error(`The @stryker-mutator/jest-runner doesn't support ${propertyPath()('coverageAnalysis')} "perTest" with "jestConfig.testRunner": "${jestConfig.testRunner}". Please open an issue if you want support for this: https://github.com/stryker-mutator/stryker-js/issues`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function overrideEnvironment(jestConfig, overrides, jestWrapper) {
|
|
71
|
+
const originalJestEnvironment = jestConfig.testEnvironment ?? getJestDefaults(jestWrapper).testEnvironment;
|
|
72
|
+
state.jestEnvironment = nameEnvironment(originalJestEnvironment);
|
|
73
|
+
overrides.testEnvironment = jestEnvironmentGenericFileName;
|
|
74
|
+
}
|
|
75
|
+
function nameEnvironment(shortName) {
|
|
76
|
+
return ['node', 'jsdom'].includes(shortName)
|
|
77
|
+
? `jest-environment-${shortName}`
|
|
78
|
+
: shortName;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=with-coverage-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-coverage-analysis.js","sourceRoot":"","sources":["../../../src/jest-plugins/with-coverage-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-run-result.d.ts","sourceRoot":"","sources":["../../src/jest-run-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-run-result.js","sourceRoot":"","sources":["../../src/jest-run-result.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StrykerOptions } from '@stryker-mutator/api/core';
|
|
2
|
+
import { JestRunnerOptions } from '../src-generated/jest-runner-options.js';
|
|
3
|
+
export interface JestRunnerOptionsWithStrykerOptions extends StrykerOptions, JestRunnerOptions {
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=jest-runner-options-with-stryker-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-runner-options-with-stryker-options.d.ts","sourceRoot":"","sources":["../../src/jest-runner-options-with-stryker-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,MAAM,WAAW,mCACf,SAAQ,cAAc,EAAE,iBAAiB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-runner-options-with-stryker-options.js","sourceRoot":"","sources":["../../src/jest-runner-options-with-stryker-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jest-test-adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jest-test-adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Logger } from '@stryker-mutator/api/logging';
|
|
2
|
+
import { StrykerOptions } from '@stryker-mutator/api/core';
|
|
3
|
+
import { Injector } from '@stryker-mutator/api/plugin';
|
|
4
|
+
import { JestPluginContext } from '../plugin-di.js';
|
|
5
|
+
import { JestWrapper } from '../utils/jest-wrapper.js';
|
|
6
|
+
import { JestTestAdapter } from './jest-test-adapter.js';
|
|
7
|
+
export declare function jestTestAdapterFactory(log: Logger, jestWrapper: JestWrapper, options: StrykerOptions, injector: Injector<JestPluginContext>): JestTestAdapter;
|
|
8
|
+
export declare namespace jestTestAdapterFactory {
|
|
9
|
+
var inject: ["logger", "jestWrapper", "options", "$injector"];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=jest-test-adapter-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-test-adapter-factory.d.ts","sourceRoot":"","sources":["../../../src/jest-test-adapters/jest-test-adapter-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAgB,QAAQ,EAAU,MAAM,6BAA6B,CAAC;AAG7E,OAAO,EAAE,iBAAiB,EAAgB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAWzD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GACpC,eAAe,CAMjB;yBAXe,sBAAsB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { commonTokens, tokens } from '@stryker-mutator/api/plugin';
|
|
2
|
+
import semver from 'semver';
|
|
3
|
+
import { pluginTokens } from '../plugin-di.js';
|
|
4
|
+
import { JestTestAdapter } from './jest-test-adapter.js';
|
|
5
|
+
function coerceVersion(version) {
|
|
6
|
+
return { version: semver.coerce(version), raw: version };
|
|
7
|
+
}
|
|
8
|
+
export function jestTestAdapterFactory(log, jestWrapper, options, injector) {
|
|
9
|
+
const coercedVersion = coerceVersion(jestWrapper.getVersion());
|
|
10
|
+
log.debug('Detected Jest version %s', coercedVersion.raw);
|
|
11
|
+
guardJestVersion(coercedVersion, options, log);
|
|
12
|
+
return injector.injectClass(JestTestAdapter);
|
|
13
|
+
}
|
|
14
|
+
jestTestAdapterFactory.inject = tokens(commonTokens.logger, pluginTokens.jestWrapper, commonTokens.options, commonTokens.injector);
|
|
15
|
+
function guardJestVersion({ version, raw }, options, log) {
|
|
16
|
+
if (semver.satisfies(version, '<22.0.0')) {
|
|
17
|
+
throw new Error(`You need Jest version >= 22.0.0 to use the @stryker-mutator/jest-runner plugin, found ${raw}`);
|
|
18
|
+
}
|
|
19
|
+
else if (semver.satisfies(version, '<24')) {
|
|
20
|
+
if (options.coverageAnalysis !== 'off') {
|
|
21
|
+
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".`);
|
|
22
|
+
}
|
|
23
|
+
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).', raw);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=jest-test-adapter-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-test-adapter-factory.js","sourceRoot":"","sources":["../../../src/jest-test-adapters/jest-test-adapter-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAY,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,MAAkB,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,WAAwB,EACxB,OAAuB,EACvB,QAAqC;IAErC,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1D,gBAAgB,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC;AACD,sBAAsB,CAAC,MAAM,GAAG,MAAM,CACpC,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,QAAQ,CACtB,CAAC;AAEF,SAAS,gBAAgB,CACvB,EAAE,OAAO,EAAE,GAAG,EAAkB,EAChC,OAAuB,EACvB,GAAW;IAEX,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,yFAAyF,GAAG,EAAE,CAC/F,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,qGAAqG,OAAO,CAAC,gBAAgB,+GAA+G,CAC7O,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,CACN,mLAAmL,EACnL,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Config } from '@jest/types';
|
|
2
|
+
import { JestRunResult } from '../jest-run-result.js';
|
|
3
|
+
import { JestWrapper } from '../utils/jest-wrapper.js';
|
|
4
|
+
export interface RunSettings {
|
|
5
|
+
jestConfig: Config.InitialOptions;
|
|
6
|
+
testNamePattern?: string;
|
|
7
|
+
fileNamesUnderTest?: string[];
|
|
8
|
+
testFiles?: string[];
|
|
9
|
+
testLocationInResults?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class JestTestAdapter {
|
|
12
|
+
private readonly jestWrapper;
|
|
13
|
+
static readonly inject: readonly ["jestWrapper"];
|
|
14
|
+
constructor(jestWrapper: JestWrapper);
|
|
15
|
+
run({ jestConfig, fileNamesUnderTest, testFiles, testNamePattern, testLocationInResults, }: RunSettings): Promise<JestRunResult>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=jest-test-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-test-adapter.d.ts","sourceRoot":"","sources":["../../../src/jest-test-adapters/jest-test-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,eAAe;IAEd,OAAO,CAAC,QAAQ,CAAC,WAAW;IADxC,gBAAuB,MAAM,2BAAuC;gBACvC,WAAW,EAAE,WAAW;IAExC,GAAG,CAAC,EACf,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAoBxC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { pluginTokens } from '../plugin-di.js';
|
|
2
|
+
export class JestTestAdapter {
|
|
3
|
+
jestWrapper;
|
|
4
|
+
static inject = [pluginTokens.jestWrapper];
|
|
5
|
+
constructor(jestWrapper) {
|
|
6
|
+
this.jestWrapper = jestWrapper;
|
|
7
|
+
}
|
|
8
|
+
async run({ jestConfig, fileNamesUnderTest, testFiles, testNamePattern, testLocationInResults, }) {
|
|
9
|
+
const config = JSON.stringify(jestConfig);
|
|
10
|
+
const testFilesToRun = testFiles ?? fileNamesUnderTest ?? [];
|
|
11
|
+
const shouldFindRelatedTests = !testFiles && !!fileNamesUnderTest;
|
|
12
|
+
const result = await this.jestWrapper.runCLI({
|
|
13
|
+
$0: 'stryker',
|
|
14
|
+
_: testFilesToRun,
|
|
15
|
+
findRelatedTests: shouldFindRelatedTests,
|
|
16
|
+
config,
|
|
17
|
+
runInBand: true,
|
|
18
|
+
silent: true,
|
|
19
|
+
passWithNoTests: true,
|
|
20
|
+
testNamePattern,
|
|
21
|
+
testLocationInResults,
|
|
22
|
+
}, [jestConfig.rootDir ?? process.cwd()]);
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=jest-test-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-test-adapter.js","sourceRoot":"","sources":["../../../src/jest-test-adapters/jest-test-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,MAAM,OAAO,eAAe;IAEG;IADtB,MAAM,CAAU,MAAM,GAAG,CAAC,YAAY,CAAC,WAAW,CAAU,CAAC;IACpE,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAElD,KAAK,CAAC,GAAG,CAAC,EACf,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,qBAAqB,GACT;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,SAAS,IAAI,kBAAkB,IAAI,EAAE,CAAC;QAC7D,MAAM,sBAAsB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,kBAAkB,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1C;YACE,EAAE,EAAE,SAAS;YACb,CAAC,EAAE,cAAc;YACjB,gBAAgB,EAAE,sBAAsB;YACxC,MAAM;YACN,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,eAAe;YACf,qBAAqB;SACtB,EACD,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CACtC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { StrykerOptions, INSTRUMENTER_CONSTANTS } from '@stryker-mutator/api/core';
|
|
2
|
+
import { Logger } from '@stryker-mutator/api/logging';
|
|
3
|
+
import { Injector, PluginContext } from '@stryker-mutator/api/plugin';
|
|
4
|
+
import { TestRunner, MutantRunOptions, DryRunResult, MutantRunResult, DryRunOptions, TestRunnerCapabilities } from '@stryker-mutator/api/test-runner';
|
|
5
|
+
import { JestTestAdapter } from './jest-test-adapters/jest-test-adapter.js';
|
|
6
|
+
import { JestConfigLoader } from './config-loaders/jest-config-loader.js';
|
|
7
|
+
import { JestWrapper } from './utils/index.js';
|
|
8
|
+
export declare function createJestTestRunnerFactory(namespace?: typeof INSTRUMENTER_CONSTANTS.NAMESPACE | '__stryker2__'): {
|
|
9
|
+
(injector: Injector<PluginContext>): JestTestRunner;
|
|
10
|
+
inject: ['$injector'];
|
|
11
|
+
};
|
|
12
|
+
export declare const jestTestRunnerFactory: {
|
|
13
|
+
(injector: Injector<PluginContext>): JestTestRunner;
|
|
14
|
+
inject: ["$injector"];
|
|
15
|
+
};
|
|
16
|
+
export declare class JestTestRunner implements TestRunner {
|
|
17
|
+
private readonly log;
|
|
18
|
+
private readonly jestTestAdapter;
|
|
19
|
+
private readonly configLoader;
|
|
20
|
+
private readonly jestWrapper;
|
|
21
|
+
private readonly globalNamespace;
|
|
22
|
+
private jestConfig;
|
|
23
|
+
private readonly jestOptions;
|
|
24
|
+
private readonly enableFindRelatedTests;
|
|
25
|
+
static inject: ["logger", "options", "jestTestAdapter", "configLoader", "jestWrapper", "globalNamespace"];
|
|
26
|
+
constructor(log: Logger, options: StrykerOptions, jestTestAdapter: JestTestAdapter, configLoader: JestConfigLoader, jestWrapper: JestWrapper, globalNamespace: typeof INSTRUMENTER_CONSTANTS.NAMESPACE | '__stryker2__');
|
|
27
|
+
init(): Promise<void>;
|
|
28
|
+
capabilities(): TestRunnerCapabilities;
|
|
29
|
+
dryRun(options: DryRunOptions): Promise<DryRunResult>;
|
|
30
|
+
mutantRun({ activeMutant, sandboxFileName, testFilter, disableBail, hitLimit, }: MutantRunOptions): Promise<MutantRunResult>;
|
|
31
|
+
private configForDryRun;
|
|
32
|
+
private configForMutantRun;
|
|
33
|
+
private configWithRoots;
|
|
34
|
+
private run;
|
|
35
|
+
private collectRunResult;
|
|
36
|
+
private collectSerializableErrorText;
|
|
37
|
+
private setEnv;
|
|
38
|
+
private processTestResults;
|
|
39
|
+
private mergeConfigSettings;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=jest-test-runner.d.ts.map
|