diff options
author | 2022-11-07 04:49:10 -0800 | |
---|---|---|
committer | 2022-11-07 04:49:10 -0800 | |
commit | c00359a521bfcd0d1476511962cfc50763796e61 (patch) | |
tree | bda8c766e02080251394c33222d52fffe1af1380 /test | |
parent | 71d0e14210fb0fa1cd19c650dfd45e25dcafab98 (diff) | |
download | bun-c00359a521bfcd0d1476511962cfc50763796e61.tar.gz bun-c00359a521bfcd0d1476511962cfc50763796e61.tar.zst bun-c00359a521bfcd0d1476511962cfc50763796e61.zip |
[bun:test] Implement `done` callback with support for async functions
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); + }); }); |