Skip to content

Commit 29ee09e

Browse files
committed
fix(core/client): fix 'raw' event subscribing
1 parent 2b3f335 commit 29ee09e

File tree

2 files changed

+9
-20
lines changed

2 files changed

+9
-20
lines changed

core/client.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ export class CoreClient<
8484
this.state = { remoteAddr: { hostname: "", port: 0, tls: false } };
8585
this.utils = {};
8686

87-
// The 'raw' event is never emitted. But when the client uses it,
88-
// this event will be translated into ALL available raw events.
87+
// The 'raw' event is never emitted. But when the client subscribes to it,
88+
// this global event will be translated into ALL available raw events.
8989

9090
this.translateGlobalIntoGranularRawEvents();
9191

@@ -100,7 +100,7 @@ export class CoreClient<
100100

101101
private translateGlobalIntoGranularRawEvents() {
102102
this.hooks.hookCall("on", (on, eventName, listener) => {
103-
const eventNames = Array.isArray(eventName) ? eventName : [eventName]
103+
const eventNames = (Array.isArray(eventName) ? eventName : [eventName])
104104
.flatMap((event) => event === "raw" ? ALL_RAW_EVENTS : event);
105105
return on(eventNames, listener);
106106
});

core/client_test.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -271,13 +271,14 @@ describe("core/client", (test) => {
271271
);
272272
});
273273

274-
test("translate global raw event to granular raw events", async () => {
274+
test("subscribe to global 'raw' event", async () => {
275275
const { client, server } = mock();
276276
const messages: Raw[] = [];
277277

278278
await client.connect("host");
279279

280280
client.on("raw", (msg) => messages.push(msg));
281+
client.on(["raw"], (msg) => messages.push(msg));
281282

282283
server.send([
283284
"PING key",
@@ -288,22 +289,10 @@ describe("core/client", (test) => {
288289

289290
await client.once("raw:nick");
290291

291-
assertEquals(messages, [{
292-
command: "ping",
293-
params: ["key"],
294-
}, {
295-
command: "rpl_welcome",
296-
params: ["me", "Welcome to the server"],
297-
source: { name: "serverhost" },
298-
}, {
299-
command: "join",
300-
params: ["#channel"],
301-
source: { mask: { host: "host", user: "user" }, name: "someone" },
302-
}, {
303-
command: "nick",
304-
params: ["me"],
305-
source: { mask: { host: "host", user: "user" }, name: "someone" },
306-
}]);
292+
// should have:
293+
// - 4 messages for `client.on("raw", fn)`
294+
// - 4 messages for `client.on(["raw"], fn)`
295+
assertEquals(messages.length, 8);
307296
});
308297

309298
test("swallow some Deno errors silently", () => {

0 commit comments

Comments
 (0)