From c762faa5f86599ffc37e484415c7d5c7d6fc3817 Mon Sep 17 00:00:00 2001 From: scottinet Date: Wed, 13 Nov 2019 14:29:19 +0100 Subject: [PATCH 1/2] [fix] erroneous error message on browser ws error --- src/protocols/websocket.js | 6 ++++-- test/protocol/websocket.test.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/protocols/websocket.js b/src/protocols/websocket.js index 09ea205a6..97a57929e 100644 --- a/src/protocols/websocket.js +++ b/src/protocols/websocket.js @@ -90,8 +90,10 @@ class WSNode extends RTWrapper { let err = error; if (!(error instanceof Error)) { - err = error ? - new Error(error.message || error) : new Error('Unexpected error'); + // browser-side, the payload sent to this event is a generic "Event" + // object bearing no information about the cause of the error + err = error && (typeof Event === 'undefined' || !(error instanceof Event)) ? + new Error(error.message || error) : new Error('Connection error'); } this.clientNetworkError(err); diff --git a/test/protocol/websocket.test.js b/test/protocol/websocket.test.js index 0bf8adb02..64c3accf0 100644 --- a/test/protocol/websocket.test.js +++ b/test/protocol/websocket.test.js @@ -414,6 +414,26 @@ describe('WebSocket networking module', () => { should(websocket.wasConnected).be.false(); }); + it('should reject with a proper error if onerror is called with an event (browser)', () => { + const Event = sinon.stub(); + Object.defineProperty(global, 'Event', { + value: Event, + enumerable: false, + writable: false, + configurable: true + }); + + const promise = websocket.connect(); + websocket.client.onerror(new Event()); + + return should(promise).rejectedWith(Error, {message: 'Connection error'}) + .then(() => delete global.Event) + .catch(e => { + delete global.Event; + throw e; + }); + }); + describe('#constructor', () => { it('should throw if an invalid host is provided', () => { const invalidHosts = [undefined, null, 123, false, true, [], {}, '']; From 7091eb3aef2ecd70cd412eae581dbe10fd79399d Mon Sep 17 00:00:00 2001 From: scottinet Date: Mon, 18 Nov 2019 14:24:28 +0100 Subject: [PATCH 2/2] Release 6.2.7 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1a15d6e7..86474396e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "kuzzle-sdk", - "version": "6.2.6", + "version": "6.2.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 84e443290..65327e287 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kuzzle-sdk", - "version": "6.2.6", + "version": "6.2.7", "description": "Official Javascript SDK for Kuzzle", "author": "The Kuzzle Team ", "repository": {