diff options
author | 2023-09-06 07:13:05 -0700 | |
---|---|---|
committer | 2023-09-06 07:13:05 -0700 | |
commit | a79440f0c37d3ff9babd513f98ecfe2728ae4022 (patch) | |
tree | 6697aadc379d01de20763f96825707983b9a4cea /test/js | |
parent | daaac7792cc348030d64a33087f1a41b3a3822cf (diff) | |
download | bun-a79440f0c37d3ff9babd513f98ecfe2728ae4022.tar.gz bun-a79440f0c37d3ff9babd513f98ecfe2728ae4022.tar.zst bun-a79440f0c37d3ff9babd513f98ecfe2728ae4022.zip |
fix(runtime): fix `events.once` not working (#4520)
Diffstat (limited to 'test/js')
-rw-r--r-- | test/js/node/events/event-emitter.test.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/js/node/events/event-emitter.test.ts b/test/js/node/events/event-emitter.test.ts index 5a1385383..366bbb03a 100644 --- a/test/js/node/events/event-emitter.test.ts +++ b/test/js/node/events/event-emitter.test.ts @@ -54,6 +54,18 @@ describe("node:events", () => { emitter.emit("hey", 2); }); + /// https://github.com/oven-sh/bun/issues/4518 + test("once removes the listener afterwards", async () => { + const emitter = new EventEmitter(); + process.nextTick(() => { + emitter.emit("hey", 1); + }); + const promise = EventEmitter.once(emitter, "hey"); + expect(emitter.listenerCount("hey")).toBe(1); + await promise; + expect(emitter.listenerCount("hey")).toBe(0); + }); + // TODO: extensive events.on tests // test("on", () => { // const emitter = new EventEmitter(); |