Skip to content

Commit fd3c64c

Browse files
committed
[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

Lines changed: 40 additions & 16 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy