Skip to content

Commit 582655f

Browse files
test(cluster-engine): fix flaky test cleanup
1 parent b79d80a commit 582655f

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

packages/socket.io-cluster-engine/test/cluster.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import expect = require("expect.js");
33
import { handshake, url } from "./util";
44
import { setupPrimary } from "../lib";
55

6+
const WORKER_COUNT = 3;
7+
68
cluster.setupPrimary({
79
exec: "./test/worker.js",
810
// @ts-expect-error
@@ -13,7 +15,7 @@ setupPrimary();
1315

1416
describe("cluster", () => {
1517
beforeEach((done) => {
16-
for (let i = 0; i < 3; i++) {
18+
for (let i = 0; i < WORKER_COUNT; i++) {
1719
const worker = cluster.fork();
1820

1921
if (i === 2) {
@@ -23,16 +25,18 @@ describe("cluster", () => {
2325
});
2426

2527
afterEach((done) => {
26-
for (const worker of Object.values(cluster.workers)) {
27-
worker.kill();
28-
}
28+
let i = 0;
2929
function onExit() {
30-
if (Object.keys(cluster.workers).length === 0) {
30+
if (++i === WORKER_COUNT) {
3131
cluster.off("exit", onExit);
3232
done();
3333
}
3434
}
3535
cluster.on("exit", onExit);
36+
37+
for (const worker of Object.values(cluster.workers)) {
38+
worker.kill();
39+
}
3640
});
3741

3842
it("should ping/pong", (done) => {

0 commit comments

Comments
 (0)