diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/bun.js/event-emitter.test.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/bun.js/event-emitter.test.ts b/test/bun.js/event-emitter.test.ts index 4c8d70452..952805cf8 100644 --- a/test/bun.js/event-emitter.test.ts +++ b/test/bun.js/event-emitter.test.ts @@ -13,4 +13,42 @@ describe("EventEmitter", () => { emitter.setMaxListeners(100); expect(emitter.getMaxListeners()).toBe(100); }); + + // These are also tests for the done() function in the test runner. + test("EventEmitter emit (different tick)", (done) => { + var emitter = new EventEmitter(); + emitter.on("wow", () => done()); + queueMicrotask(() => { + emitter.emit("wow"); + }); + }); + + // Unlike Jest, bun supports async and done + test("async EventEmitter emit (microtask)", async (done) => { + await 1; + var emitter = new EventEmitter(); + emitter.on("wow", () => done()); + emitter.emit("wow"); + }); + + test("async EventEmitter emit (microtask) after", async (done) => { + var emitter = new EventEmitter(); + emitter.on("wow", () => done()); + await 1; + emitter.emit("wow"); + }); + + test("EventEmitter emit (same tick)", (done) => { + var emitter = new EventEmitter(); + + emitter.on("wow", () => done()); + + emitter.emit("wow"); + }); + + test("EventEmitter emit (setTimeout task)", (done) => { + var emitter = new EventEmitter(); + emitter.on("wow", () => done()); + setTimeout(() => emitter.emit("wow"), 1); + }); }); |