Skip to content

Commit bcab373

Browse files
committed
[test] Increase code coverage
1 parent 3a5a20a commit bcab373

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

test/receiver.test.js

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,7 @@ describe('Receiver', () => {
709709
);
710710
});
711711

712-
it('emits an error if a text frame contains invalid UTF-8 data', (done) => {
712+
it('emits an error if a text frame contains invalid UTF-8 data (1/2)', (done) => {
713713
const receiver = new Receiver();
714714

715715
receiver.on('error', (err) => {
@@ -725,6 +725,33 @@ describe('Receiver', () => {
725725
receiver.write(Buffer.from([0x81, 0x04, 0xce, 0xba, 0xe1, 0xbd]));
726726
});
727727

728+
it('emits an error if a text frame contains invalid UTF-8 data (2/2)', (done) => {
729+
const perMessageDeflate = new PerMessageDeflate();
730+
perMessageDeflate.accept([{}]);
731+
732+
const receiver = new Receiver(undefined, {
733+
'permessage-deflate': perMessageDeflate
734+
});
735+
const buf = Buffer.from([0xce, 0xba, 0xe1, 0xbd]);
736+
737+
receiver.on('error', (err) => {
738+
assert.ok(err instanceof Error);
739+
assert.strictEqual(
740+
err.message,
741+
'Invalid WebSocket frame: invalid UTF-8 sequence'
742+
);
743+
assert.strictEqual(err[kStatusCode], 1007);
744+
done();
745+
});
746+
747+
perMessageDeflate.compress(buf, true, (err, data) => {
748+
if (err) return done(err);
749+
750+
receiver.write(Buffer.from([0xc1, data.length]));
751+
receiver.write(data);
752+
});
753+
});
754+
728755
it('emits an error if a close frame has a payload of 1 B', (done) => {
729756
const receiver = new Receiver();
730757

test/websocket.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,9 +1870,7 @@ describe('WebSocket', () => {
18701870
const ws = new WebSocket(`ws://${auth}@localhost`, { agent });
18711871
});
18721872

1873-
it('adds the authorization header if the url has userinfo (2/2)', function(done) {
1874-
if (!url.URL) return this.skip();
1875-
1873+
it('adds the authorization header if the url has userinfo (2/2)', (done) => {
18761874
const agent = new CustomAgent();
18771875
const auth = 'test:testpass';
18781876

@@ -1884,7 +1882,7 @@ describe('WebSocket', () => {
18841882
done();
18851883
};
18861884

1887-
const ws = new WebSocket(new url.URL(`ws://${auth}@localhost`), {
1885+
const ws = new WebSocket(url.parse(`ws://${auth}@localhost`), {
18881886
agent
18891887
});
18901888
});

0 commit comments

Comments
 (0)