From 09393952e3397a0c71f239ea983f8ec1623b7c21 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Fri, 30 Oct 2020 22:54:13 +0100 Subject: [PATCH] feat: emit an Error object upon middleware error See https://github.com/socketio/socket.io/commit/54bf4a44e9e896dfb64764ee7bd4e8823eb7dc7b --- lib/socket.ts | 5 ++++- test/socket.ts | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/socket.ts b/lib/socket.ts index 4005462b4..dbcb9285c 100644 --- a/lib/socket.ts +++ b/lib/socket.ts @@ -250,7 +250,10 @@ export class Socket extends Emitter { break; case PacketType.CONNECT_ERROR: - super.emit("connect_error", packet.data); + const err = new Error(packet.data.message); + // @ts-ignore + err.data = packet.data.data; + super.emit("connect_error", err); break; } } diff --git a/test/socket.ts b/test/socket.ts index 8a1e44b3b..b27be71d5 100644 --- a/test/socket.ts +++ b/test/socket.ts @@ -177,7 +177,8 @@ describe("socket", function () { it("should fire an error event on middleware failure from custom namespace", (done) => { const socket = io("/no", { forceNew: true }); socket.on("connect_error", (err) => { - expect(err).to.eql("Auth failed (custom namespace)"); + expect(err).to.be.an(Error); + expect(err.message).to.eql("Auth failed (custom namespace)"); socket.disconnect(); done(); });