Skip to content

Commit 105374c

Browse files
committed
[test] Increase code coverage
1 parent 52d7842 commit 105374c

File tree

4 files changed

+84
-38
lines changed

4 files changed

+84
-38
lines changed

lib/BufferUtil.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ try {
3131
const bufferUtil = require('bufferutil');
3232

3333
module.exports = Object.assign({ concat }, bufferUtil.BufferUtil || bufferUtil);
34-
} catch (e) {
34+
} catch (e) /* istanbul ignore next */ {
3535
/**
3636
* Masks a buffer using the given mask.
3737
*

lib/Validation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ try {
1212
module.exports = typeof isValidUTF8 === 'object'
1313
? isValidUTF8.Validation.isValidUTF8 // utf-8-validate@<3.0.0
1414
: isValidUTF8;
15-
} catch (e) {
15+
} catch (e) /* istanbul ignore next */ {
1616
module.exports = () => true;
1717
}

test/Sender.test.js

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,6 @@ describe('Sender', function () {
3434
});
3535
});
3636

37-
describe('#ping', function () {
38-
it('works with multiple types of data', function (done) {
39-
let count = 0;
40-
const sender = new Sender({
41-
write: (data) => {
42-
assert.ok(data.equals(Buffer.from([0x89, 0x02, 0x68, 0x69])));
43-
if (++count === 3) done();
44-
}
45-
});
46-
47-
const array = new Uint8Array([0x68, 0x69]);
48-
49-
sender.ping(array.buffer, false);
50-
sender.ping(array, false);
51-
sender.ping('hi', false);
52-
});
53-
});
54-
55-
describe('#pong', function () {
56-
it('works with multiple types of data', function (done) {
57-
let count = 0;
58-
const sender = new Sender({
59-
write: (data) => {
60-
assert.ok(data.equals(Buffer.from([0x8a, 0x02, 0x68, 0x69])));
61-
if (++count === 3) done();
62-
}
63-
});
64-
65-
const array = new Uint8Array([0x68, 0x69]);
66-
67-
sender.pong(array.buffer, false);
68-
sender.pong(array, false);
69-
sender.pong('hi', false);
70-
});
71-
});
72-
7337
describe('#send', function () {
7438
it('compresses data if compress option is enabled', function (done) {
7539
const perMessageDeflate = new PerMessageDeflate({ threshold: 0 });
@@ -228,6 +192,58 @@ describe('Sender', function () {
228192
});
229193
});
230194

195+
describe('#ping', function () {
196+
it('works with multiple types of data', function (done) {
197+
const perMessageDeflate = new PerMessageDeflate({ threshold: 0 });
198+
let count = 0;
199+
const sender = new Sender({
200+
write: (data) => {
201+
if (++count === 1) return;
202+
203+
assert.ok(data.equals(Buffer.from([0x89, 0x02, 0x68, 0x69])));
204+
if (count === 4) done();
205+
}
206+
}, {
207+
'permessage-deflate': perMessageDeflate
208+
});
209+
210+
perMessageDeflate.accept([{}]);
211+
212+
const array = new Uint8Array([0x68, 0x69]);
213+
214+
sender.send('foo', { compress: true, fin: true });
215+
sender.ping(array.buffer, false);
216+
sender.ping(array, false);
217+
sender.ping('hi', false);
218+
});
219+
});
220+
221+
describe('#pong', function () {
222+
it('works with multiple types of data', function (done) {
223+
const perMessageDeflate = new PerMessageDeflate({ threshold: 0 });
224+
let count = 0;
225+
const sender = new Sender({
226+
write: (data) => {
227+
if (++count === 1) return;
228+
229+
assert.ok(data.equals(Buffer.from([0x8a, 0x02, 0x68, 0x69])));
230+
if (count === 4) done();
231+
}
232+
}, {
233+
'permessage-deflate': perMessageDeflate
234+
});
235+
236+
perMessageDeflate.accept([{}]);
237+
238+
const array = new Uint8Array([0x68, 0x69]);
239+
240+
sender.send('foo', { compress: true, fin: true });
241+
sender.pong(array.buffer, false);
242+
sender.pong(array, false);
243+
sender.pong('hi', false);
244+
});
245+
});
246+
231247
describe('#close', function () {
232248
it('should consume all data before closing', function (done) {
233249
const perMessageDeflate = new PerMessageDeflate({ threshold: 0 });

test/WebSocket.test.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,21 @@ describe('WebSocket', function () {
11291129
});
11301130
});
11311131
});
1132+
1133+
it('does nothing if the connection is already CLOSED', function (done) {
1134+
const wss = new WebSocketServer({ port: ++port }, () => {
1135+
const ws = new WebSocket(`ws://localhost:${port}`);
1136+
1137+
ws.on('close', (code) => {
1138+
assert.strictEqual(code, 1000);
1139+
assert.strictEqual(ws.readyState, WebSocket.CLOSED);
1140+
ws.close();
1141+
wss.close(done);
1142+
});
1143+
});
1144+
1145+
wss.on('connection', (ws) => ws.close());
1146+
});
11321147
});
11331148

11341149
describe('#terminate', function () {
@@ -1174,6 +1189,21 @@ describe('WebSocket', function () {
11741189
ws.on('close', () => done());
11751190
});
11761191
});
1192+
1193+
it('does nothing if the connection is already CLOSED', function (done) {
1194+
const wss = new WebSocketServer({ port: ++port }, () => {
1195+
const ws = new WebSocket(`ws://localhost:${port}`);
1196+
1197+
ws.on('close', (code) => {
1198+
assert.strictEqual(code, 1006);
1199+
assert.strictEqual(ws.readyState, WebSocket.CLOSED);
1200+
ws.terminate();
1201+
wss.close(done);
1202+
});
1203+
});
1204+
1205+
wss.on('connection', (ws) => ws.terminate());
1206+
});
11771207
});
11781208

11791209
describe('WHATWG API emulation', function () {

0 commit comments

Comments
 (0)