aboutsummaryrefslogtreecommitdiff
path: root/test/js
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-09-06 07:13:05 -0700
committerGravatar GitHub <noreply@github.com> 2023-09-06 07:13:05 -0700
commita79440f0c37d3ff9babd513f98ecfe2728ae4022 (patch)
tree6697aadc379d01de20763f96825707983b9a4cea /test/js
parentdaaac7792cc348030d64a33087f1a41b3a3822cf (diff)
downloadbun-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.ts12
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();