Skip to content

Commit 1614524

Browse files
authored
refactor(jest-runner): remove unnecessary ProcessTerminatedError logic (#12287)
1 parent 9edcaaf commit 1614524

File tree

3 files changed

+36
-52
lines changed

3 files changed

+36
-52
lines changed

packages/jest-runner/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"@types/node": "*",
2626
"chalk": "^4.0.0",
2727
"emittery": "^0.8.1",
28-
"exit": "^0.1.2",
2928
"graceful-fs": "^4.2.9",
3029
"jest-docblock": "^27.4.0",
3130
"jest-environment-jsdom": "^27.4.6",

packages/jest-runner/src/index.ts

Lines changed: 36 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77

88
import chalk = require('chalk');
99
import Emittery = require('emittery');
10-
import exit = require('exit');
1110
import throat from 'throat';
1211
import type {
13-
SerializableError,
1412
Test,
1513
TestEvents,
1614
TestFileEvent,
@@ -97,11 +95,10 @@ export default class TestRunner {
9795
if (watcher.isInterrupted()) {
9896
throw new CancelRun();
9997
}
100-
let sendMessageToJest: TestFileEvent;
101-
10298
// Remove `if(onStart)` in Jest 27
10399
if (onStart) {
104100
await onStart(test);
101+
105102
return runTest(
106103
test.path,
107104
this._globalConfig,
@@ -110,41 +107,42 @@ export default class TestRunner {
110107
this._context,
111108
undefined,
112109
);
113-
} else {
114-
// `deepCyclicCopy` used here to avoid mem-leak
115-
sendMessageToJest = (eventName, args) =>
116-
this.eventEmitter.emit(
117-
eventName,
118-
deepCyclicCopy(args, {keepPrototype: false}),
119-
);
120-
121-
await this.eventEmitter.emit('test-file-start', [test]);
122-
return runTest(
123-
test.path,
124-
this._globalConfig,
125-
test.context.config,
126-
test.context.resolver,
127-
this._context,
128-
sendMessageToJest,
129-
);
130110
}
111+
112+
// `deepCyclicCopy` used here to avoid mem-leak
113+
const sendMessageToJest: TestFileEvent = (eventName, args) =>
114+
this.eventEmitter.emit(
115+
eventName,
116+
deepCyclicCopy(args, {keepPrototype: false}),
117+
);
118+
119+
await this.eventEmitter.emit('test-file-start', [test]);
120+
121+
return runTest(
122+
test.path,
123+
this._globalConfig,
124+
test.context.config,
125+
test.context.resolver,
126+
this._context,
127+
sendMessageToJest,
128+
);
131129
})
132130
.then(result => {
133131
if (onResult) {
134132
return onResult(test, result);
135-
} else {
136-
return this.eventEmitter.emit('test-file-success', [
137-
test,
138-
result,
139-
]);
140133
}
134+
135+
return this.eventEmitter.emit('test-file-success', [
136+
test,
137+
result,
138+
]);
141139
})
142140
.catch(err => {
143141
if (onFailure) {
144142
return onFailure(test, err);
145-
} else {
146-
return this.eventEmitter.emit('test-file-failure', [test, err]);
147143
}
144+
145+
return this.eventEmitter.emit('test-file-failure', [test, err]);
148146
}),
149147
),
150148
Promise.resolve(),
@@ -225,22 +223,6 @@ export default class TestRunner {
225223
return promise;
226224
});
227225

228-
const onError = async (err: SerializableError, test: Test) => {
229-
// Remove `if(onFailure)` in Jest 27
230-
if (onFailure) {
231-
await onFailure(test, err);
232-
} else {
233-
await this.eventEmitter.emit('test-file-failure', [test, err]);
234-
}
235-
if (err.type === 'ProcessTerminatedError') {
236-
console.error(
237-
'A worker process has quit unexpectedly! ' +
238-
'Most likely this is an initialization error.',
239-
);
240-
exit(1);
241-
}
242-
};
243-
244226
const onInterrupt = new Promise((_, reject) => {
245227
watcher.on('change', state => {
246228
if (state.interrupted) {
@@ -255,14 +237,17 @@ export default class TestRunner {
255237
.then(result => {
256238
if (onResult) {
257239
return onResult(test, result);
258-
} else {
259-
return this.eventEmitter.emit('test-file-success', [
260-
test,
261-
result,
262-
]);
263240
}
241+
242+
return this.eventEmitter.emit('test-file-success', [test, result]);
264243
})
265-
.catch(error => onError(error, test)),
244+
.catch(error => {
245+
if (onFailure) {
246+
return onFailure(test, error);
247+
}
248+
249+
return this.eventEmitter.emit('test-file-failure', [test, error]);
250+
}),
266251
),
267252
);
268253

@@ -279,6 +264,7 @@ export default class TestRunner {
279264
);
280265
}
281266
};
267+
282268
return Promise.race([runAllTests, onInterrupt]).then(cleanup, cleanup);
283269
}
284270

yarn.lock

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13064,7 +13064,6 @@ __metadata:
1306413064
"@types/source-map-support": ^0.5.0
1306513065
chalk: ^4.0.0
1306613066
emittery: ^0.8.1
13067-
exit: ^0.1.2
1306813067
graceful-fs: ^4.2.9
1306913068
jest-docblock: ^27.4.0
1307013069
jest-environment-jsdom: ^27.4.6

0 commit comments

Comments
 (0)