Skip to content

Commit 937b7f0

Browse files
authored
chore: Expose interceptorModule from WorkflowCoverage (#821)
1 parent ddb69b0 commit 937b7f0

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

packages/nyc-test-coverage/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ worker = await Worker.create({
2020
taskQueue,
2121
workflowsPath: require.resolve("./workflows"),
2222
interceptors: {
23-
workflowModules: [require.resolve("@temporalio/nyc-test-coverage/lib/interceptors")]
23+
workflowModules: [workflowCoverage.interceptorModule]
2424
},
2525
sinks: workflowCoverage.sinks,
2626
});
@@ -41,4 +41,4 @@ The following assumes that `npm run build` produces compiled JavaScript in the `
4141
{
4242
"test.coverage": "npm run build && nyc instrument lib lib --in-place && nyc --reporter=lcov --reporter=text-summary mocha lib/*.test.js"
4343
}
44-
```
44+
```

packages/nyc-test-coverage/src/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ import libCoverage from 'istanbul-lib-coverage';
55
export class WorkflowCoverage {
66
coverageMap = libCoverage.createCoverageMap();
77

8+
/**
9+
* Interceptor to inject into `WorkerOptions.interceptors.workflowModules`
10+
*/
11+
public get interceptorModule(): string {
12+
return require.resolve('./interceptors');
13+
}
14+
815
/**
916
* Contains sinks that allow Workflows to gather coverage data.
1017
*/

packages/nyc-test-coverage/src/interceptors.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { proxySinks, WorkflowInterceptors } from '@temporalio/workflow';
22
import { CoverageSinks } from './sinks';
3-
import libCoverage from 'istanbul-lib-coverage';
3+
import type { CoverageMapData } from 'istanbul-lib-coverage';
44

55
const { coverage } = proxySinks<CoverageSinks>();
66

@@ -11,7 +11,7 @@ export const interceptors = (): WorkflowInterceptors => ({
1111
concludeActivation(input, next) {
1212
/* eslint-disable @typescript-eslint/ban-ts-comment */
1313
// @ts-ignore
14-
const globalCoverage: libCoverage.CoverageMapData = global.__coverage__;
14+
const globalCoverage: CoverageMapData = global.__coverage__;
1515

1616
coverage.merge(JSON.parse(JSON.stringify(globalCoverage)));
1717
clearCoverage(globalCoverage);
@@ -22,7 +22,7 @@ export const interceptors = (): WorkflowInterceptors => ({
2222
],
2323
});
2424

25-
function clearCoverage(coverage: libCoverage.CoverageMapData): void {
25+
function clearCoverage(coverage: CoverageMapData): void {
2626
for (const path of Object.keys(coverage)) {
2727
for (const index of Object.keys(coverage[path].s)) {
2828
coverage[path].s[index] = 0;

0 commit comments

Comments
 (0)