Skip to content

Commit 997c40c

Browse files
committed
fix: serialize changedFiles passed to workers
1 parent af47382 commit 997c40c

File tree

6 files changed

+29
-8
lines changed

6 files changed

+29
-8
lines changed

packages/jest-reporters/src/coverage_reporter.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,12 @@ export default class CoverageReporter extends BaseReporter {
170170
const result = await worker.worker({
171171
config,
172172
globalConfig,
173-
options: this._options,
173+
options: {
174+
...this._options,
175+
changedFiles:
176+
this._options.changedFiles &&
177+
Array.from(this._options.changedFiles),
178+
},
174179
path: filename,
175180
});
176181

packages/jest-reporters/src/coverage_worker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import fs from 'fs';
99
import {Config} from '@jest/types';
1010
import exit from 'exit';
11-
import {CoverageReporterOptions} from './types';
11+
import {CoverageReporterSerializedOptions} from './types';
1212

1313
import generateEmptyCoverage, {
1414
CoverageWorkerResult,
@@ -18,7 +18,7 @@ export type CoverageWorkerData = {
1818
globalConfig: Config.GlobalConfig;
1919
config: Config.ProjectConfig;
2020
path: Config.Path;
21-
options?: CoverageReporterOptions;
21+
options?: CoverageReporterSerializedOptions;
2222
};
2323

2424
export {CoverageWorkerResult};
@@ -40,6 +40,6 @@ export function worker({
4040
path,
4141
globalConfig,
4242
config,
43-
options && options.changedFiles,
43+
options && options.changedFiles && new Set(options.changedFiles),
4444
);
4545
}

packages/jest-reporters/src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ export type CoverageReporterOptions = {
4141
changedFiles?: Set<Config.Path>;
4242
};
4343

44+
export type CoverageReporterSerializedOptions = {
45+
changedFiles?: Array<Config.Path>;
46+
};
47+
4448
export type OnTestStart = (test: Test) => Promise<void>;
4549
export type OnTestFailure = (
4650
test: Test,

packages/jest-runner/src/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,12 @@ class TestRunner {
127127

128128
return worker.worker({
129129
config: test.context.config,
130-
context: this._context,
130+
context: {
131+
...this._context,
132+
changedFiles:
133+
this._context.changedFiles &&
134+
Array.from(this._context.changedFiles),
135+
},
131136
globalConfig: this._globalConfig,
132137
path: test.path,
133138
serializableModuleMap: watcher.isWatchMode()

packages/jest-runner/src/testWorker.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ import HasteMap, {SerializableModuleMap, ModuleMap} from 'jest-haste-map';
1212
import exit from 'exit';
1313
import {separateMessageFromStack} from 'jest-message-util';
1414
import Runtime from 'jest-runtime';
15-
import {ErrorWithCode, TestRunnerContext} from './types';
15+
import {ErrorWithCode, TestRunnerSerializedContext} from './types';
1616
import runTest from './runTest';
1717

1818
type WorkerData = {
1919
config: Config.ProjectConfig;
2020
globalConfig: Config.GlobalConfig;
2121
path: Config.Path;
2222
serializableModuleMap: SerializableModuleMap | null;
23-
context?: TestRunnerContext;
23+
context?: TestRunnerSerializedContext;
2424
};
2525

2626
// Make sure uncaught errors are logged before we exit.
@@ -86,7 +86,10 @@ export async function worker({
8686
globalConfig,
8787
config,
8888
getResolver(config, moduleMap),
89-
context,
89+
context && {
90+
...config,
91+
changedFiles: context.changedFiles && new Set(context.changedFiles),
92+
},
9093
);
9194
} catch (error) {
9295
throw formatError(error);

packages/jest-runner/src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ export type TestRunnerContext = {
5353
changedFiles?: Set<Config.Path>;
5454
};
5555

56+
export type TestRunnerSerializedContext = {
57+
changedFiles?: Array<Config.Path>;
58+
};
59+
5660
// TODO: Should live in `@jest/core` or `jest-watcher`
5761
export type WatcherState = {
5862
interrupted: boolean;

0 commit comments

Comments
 (0)