diff options
author | 2022-12-21 07:34:25 +0200 | |
---|---|---|
committer | 2022-12-20 21:34:25 -0800 | |
commit | 06487ef64f6968c411420f3e8347144f3885d2ef (patch) | |
tree | e4c9082ccaf8bc2787cb2379ca4d8492ee018813 /test/bun.js/setImmediate.test.js | |
parent | b2fdcad77b9e89ac5a7318a8b178c366055f8c62 (diff) | |
download | bun-06487ef64f6968c411420f3e8347144f3885d2ef.tar.gz bun-06487ef64f6968c411420f3e8347144f3885d2ef.tar.zst bun-06487ef64f6968c411420f3e8347144f3885d2ef.zip |
add tests for #1633 (#1635)
- `setImmediate(fn, ...args)`
- `setInterval(fn, delay, ...args)`
- `setTimeout(fn, delay, ...args)`
Diffstat (limited to 'test/bun.js/setImmediate.test.js')
-rw-r--r-- | test/bun.js/setImmediate.test.js | 47 |
1 files changed, 47 insertions, 0 deletions
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); +}); |