Skip to content

Commit fd3c64c

Browse files
committedSep 8, 2023
[test] Fix flaky tests on Windows
1 parent ae60ce0 commit fd3c64c

File tree

1 file changed

+40
-16
lines changed

1 file changed

+40
-16
lines changed
 

‎test/websocket.test.js

+40-16
Original file line numberDiff line numberDiff line change
@@ -2813,16 +2813,28 @@ describe('WebSocket', () => {
28132813
});
28142814

28152815
it('can be called from an error listener while connecting', (done) => {
2816-
const ws = new WebSocket('ws://localhost:1337');
2816+
const server = net.createServer();
28172817

2818-
ws.on('open', () => done(new Error("Unexpected 'open' event")));
2819-
ws.on('error', (err) => {
2820-
assert.ok(err instanceof Error);
2821-
assert.strictEqual(err.code, 'ECONNREFUSED');
2822-
ws.close();
2823-
ws.on('close', () => done());
2818+
server.on('connection', (socket) => {
2819+
socket.on('end', socket.end);
2820+
socket.resume();
2821+
socket.write(Buffer.from('foo\r\n'));
28242822
});
2825-
}).timeout(4000);
2823+
2824+
server.listen(0, () => {
2825+
const ws = new WebSocket(`ws://localhost:${server.address().port}`);
2826+
2827+
ws.on('open', () => done(new Error("Unexpected 'open' event")));
2828+
ws.on('error', (err) => {
2829+
assert.ok(err instanceof Error);
2830+
assert.strictEqual(err.code, 'HPE_INVALID_CONSTANT');
2831+
ws.close();
2832+
ws.on('close', () => {
2833+
server.close(done);
2834+
});
2835+
});
2836+
});
2837+
});
28262838

28272839
it("can be called from a listener of the 'redirect' event", (done) => {
28282840
const server = http.createServer();
@@ -3087,16 +3099,28 @@ describe('WebSocket', () => {
30873099
});
30883100

30893101
it('can be called from an error listener while connecting', (done) => {
3090-
const ws = new WebSocket('ws://localhost:1337');
3102+
const server = net.createServer();
30913103

3092-
ws.on('open', () => done(new Error("Unexpected 'open' event")));
3093-
ws.on('error', (err) => {
3094-
assert.ok(err instanceof Error);
3095-
assert.strictEqual(err.code, 'ECONNREFUSED');
3096-
ws.terminate();
3097-
ws.on('close', () => done());
3104+
server.on('connection', (socket) => {
3105+
socket.on('end', socket.end);
3106+
socket.resume();
3107+
socket.write(Buffer.from('foo\r\n'));
30983108
});
3099-
}).timeout(4000);
3109+
3110+
server.listen(0, function () {
3111+
const ws = new WebSocket(`ws://localhost:${server.address().port}`);
3112+
3113+
ws.on('open', () => done(new Error("Unexpected 'open' event")));
3114+
ws.on('error', (err) => {
3115+
assert.ok(err instanceof Error);
3116+
assert.strictEqual(err.code, 'HPE_INVALID_CONSTANT');
3117+
ws.terminate();
3118+
ws.on('close', () => {
3119+
server.close(done);
3120+
});
3121+
});
3122+
});
3123+
});
31003124

31013125
it("can be called from a listener of the 'redirect' event", (done) => {
31023126
const server = http.createServer();

0 commit comments

Comments
 (0)
Please sign in to comment.