@temporalio/nyc-test-coverage 1.1.0 → 1.2.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/lib/index.d.ts +19 -0
- package/lib/index.js +51 -0
- package/lib/index.js.map +1 -0
- package/lib/interceptors.d.ts +2 -0
- package/lib/interceptors.js +29 -0
- package/lib/interceptors.js.map +1 -0
- package/lib/sinks.d.ts +6 -0
- package/lib/sinks.js +3 -0
- package/lib/sinks.js.map +1 -0
- package/package.json +15 -15
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { InjectedSinks } from '@temporalio/worker';
|
|
2
|
+
import { CoverageSinks } from './sinks';
|
|
3
|
+
import libCoverage from 'istanbul-lib-coverage';
|
|
4
|
+
export declare class WorkflowCoverage {
|
|
5
|
+
coverageMap: libCoverage.CoverageMap;
|
|
6
|
+
/**
|
|
7
|
+
* Interceptor to inject into `WorkerOptions.interceptors.workflowModules`
|
|
8
|
+
*/
|
|
9
|
+
get interceptorModule(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Contains sinks that allow Workflows to gather coverage data.
|
|
12
|
+
*/
|
|
13
|
+
get sinks(): InjectedSinks<CoverageSinks>;
|
|
14
|
+
/**
|
|
15
|
+
* Merge this WorkflowCoverage's coverage map into the global coverage
|
|
16
|
+
* map data `global.__coverage__`.
|
|
17
|
+
*/
|
|
18
|
+
mergeIntoGlobalCoverage(): void;
|
|
19
|
+
}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WorkflowCoverage = void 0;
|
|
7
|
+
const istanbul_lib_coverage_1 = __importDefault(require("istanbul-lib-coverage"));
|
|
8
|
+
class WorkflowCoverage {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.coverageMap = istanbul_lib_coverage_1.default.createCoverageMap();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Interceptor to inject into `WorkerOptions.interceptors.workflowModules`
|
|
14
|
+
*/
|
|
15
|
+
get interceptorModule() {
|
|
16
|
+
return require.resolve('./interceptors');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Contains sinks that allow Workflows to gather coverage data.
|
|
20
|
+
*/
|
|
21
|
+
get sinks() {
|
|
22
|
+
return {
|
|
23
|
+
coverage: {
|
|
24
|
+
merge: {
|
|
25
|
+
fn: (_workflowInfo, testCoverage) => {
|
|
26
|
+
this.coverageMap.merge(testCoverage);
|
|
27
|
+
},
|
|
28
|
+
callDuringReplay: false,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Merge this WorkflowCoverage's coverage map into the global coverage
|
|
35
|
+
* map data `global.__coverage__`.
|
|
36
|
+
*/
|
|
37
|
+
mergeIntoGlobalCoverage() {
|
|
38
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
this.coverageMap.merge(global.__coverage__);
|
|
41
|
+
const coverageMapData = Object.keys(this.coverageMap.data).reduce((cur, path) => {
|
|
42
|
+
const fileCoverage = this.coverageMap.data[path];
|
|
43
|
+
cur[path] = fileCoverage.data;
|
|
44
|
+
return cur;
|
|
45
|
+
}, {});
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
global.__coverage__ = coverageMapData;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.WorkflowCoverage = WorkflowCoverage;
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,kFAAgD;AAEhD,MAAa,gBAAgB;IAA7B;QACE,gBAAW,GAAG,+BAAW,CAAC,iBAAiB,EAAE,CAAC;IA+ChD,CAAC;IA7CC;;OAEG;IACH,IAAW,iBAAiB;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO;YACL,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE;wBAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACvC,CAAC;oBACD,gBAAgB,EAAE,KAAK;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,sDAAsD;QACtD,aAAa;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,eAAe,GAAgC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAC5F,CAAC,GAAgC,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAC;YAE7E,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;YAC9B,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,aAAa;QACb,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC;IACxC,CAAC;CACF;AAhDD,4CAgDC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.interceptors = void 0;
|
|
4
|
+
const workflow_1 = require("@temporalio/workflow");
|
|
5
|
+
const { coverage } = (0, workflow_1.proxySinks)();
|
|
6
|
+
// Export the interceptors
|
|
7
|
+
const interceptors = () => ({
|
|
8
|
+
internals: [
|
|
9
|
+
{
|
|
10
|
+
concludeActivation(input, next) {
|
|
11
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
const globalCoverage = global.__coverage__;
|
|
14
|
+
coverage.merge(JSON.parse(JSON.stringify(globalCoverage)));
|
|
15
|
+
clearCoverage(globalCoverage);
|
|
16
|
+
return next(input);
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
});
|
|
21
|
+
exports.interceptors = interceptors;
|
|
22
|
+
function clearCoverage(coverage) {
|
|
23
|
+
for (const path of Object.keys(coverage)) {
|
|
24
|
+
for (const index of Object.keys(coverage[path].s)) {
|
|
25
|
+
coverage[path].s[index] = 0;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=interceptors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../src/interceptors.ts"],"names":[],"mappings":";;;AAAA,mDAAwE;AAIxE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAU,GAAiB,CAAC;AAEjD,0BAA0B;AACnB,MAAM,YAAY,GAAG,GAAyB,EAAE,CAAC,CAAC;IACvD,SAAS,EAAE;QACT;YACE,kBAAkB,CAAC,KAAK,EAAE,IAAI;gBAC5B,sDAAsD;gBACtD,aAAa;gBACb,MAAM,cAAc,GAAoB,MAAM,CAAC,YAAY,CAAC;gBAE5D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3D,aAAa,CAAC,cAAc,CAAC,CAAC;gBAE9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;SACF;KACF;CACF,CAAC,CAAC;AAfU,QAAA,YAAY,gBAetB;AAEH,SAAS,aAAa,CAAC,QAAyB;IAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;KACF;AACH,CAAC"}
|
package/lib/sinks.d.ts
ADDED
package/lib/sinks.js
ADDED
package/lib/sinks.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/nyc-test-coverage",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Temporal.io SDK code coverage integration",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"types": "./lib/index.d.ts",
|
|
7
5
|
"keywords": [
|
|
8
6
|
"temporal",
|
|
9
7
|
"workflow",
|
|
10
8
|
"testing",
|
|
11
9
|
"coverage"
|
|
12
10
|
],
|
|
13
|
-
"
|
|
14
|
-
"license": "MIT",
|
|
15
|
-
"dependencies": {
|
|
16
|
-
"@temporalio/worker": "^1.1.0",
|
|
17
|
-
"@temporalio/workflow": "^1.1.0",
|
|
18
|
-
"istanbul-lib-coverage": "^3.2.0"
|
|
19
|
-
},
|
|
20
|
-
"devDependencies": {
|
|
21
|
-
"@types/istanbul-lib-coverage": "^2.0.4"
|
|
22
|
-
},
|
|
11
|
+
"homepage": "https://github.com/temporalio/sdk-typescript/tree/main/packages/testing",
|
|
23
12
|
"bugs": {
|
|
24
13
|
"url": "https://github.com/temporalio/sdk-typescript/issues"
|
|
25
14
|
},
|
|
26
|
-
"
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"author": "Temporal Technologies Inc. <sdk@temporal.io>",
|
|
17
|
+
"main": "lib/index.js",
|
|
18
|
+
"types": "./lib/index.d.ts",
|
|
27
19
|
"files": [
|
|
28
20
|
"lib",
|
|
29
21
|
"src"
|
|
30
22
|
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@temporalio/worker": "^1.2.0",
|
|
25
|
+
"@temporalio/workflow": "^1.2.0",
|
|
26
|
+
"istanbul-lib-coverage": "^3.2.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/istanbul-lib-coverage": "^2.0.4"
|
|
30
|
+
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "9790992f0a7da1638cd3db99518e414107651630"
|
|
35
35
|
}
|