From 06487ef64f6968c411420f3e8347144f3885d2ef Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Wed, 21 Dec 2022 07:34:25 +0200 Subject: add tests for #1633 (#1635) - `setImmediate(fn, ...args)` - `setInterval(fn, delay, ...args)` - `setTimeout(fn, delay, ...args)` --- test/bun.js/setImmediate.test.js | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/bun.js/setImmediate.test.js (limited to 'test/bun.js/setImmediate.test.js') diff --git a/test/bun.js/setImmediate.test.js b/test/bun.js/setImmediate.test.js new file mode 100644 index 000000000..9cd6fa1c9 --- /dev/null +++ b/test/bun.js/setImmediate.test.js @@ -0,0 +1,47 @@ +import { it, expect } from "bun:test"; + +it("setImmediate", async () => { + var lastID = -1; + const result = await new Promise((resolve, reject) => { + var numbers = []; + + for (let i = 0; i < 10; i++) { + const id = setImmediate((...args) => { + numbers.push(i); + if (i === 9) { + resolve(numbers); + } + try { + expect(args.length).toBe(1); + expect(args[0]).toBe(i); + } catch (err) { + reject(err); + } + }, i); + expect(id > lastID).toBe(true); + lastID = id; + } + }); + + for (let j = 0; j < result.length; j++) { + expect(result[j]).toBe(j); + } + expect(result.length).toBe(10); +}); + +it("clearImmediate", async () => { + var called = false; + const id = setImmediate(() => { + called = true; + expect(false).toBe(true); + }); + clearImmediate(id); + + // assert it doesn't crash if you call clearImmediate twice + clearImmediate(id); + + await new Promise((resolve, reject) => { + setImmediate(resolve); + }); + expect(called).toBe(false); +}); -- cgit v1.2.3