aboutsummaryrefslogtreecommitdiff
path: root/integration/bunjs-only-snippets/setInterval.test.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-01 00:47:31 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-01 00:47:31 -0800
commit114c0e8ed2a0eea835139ece3677efce09a8b702 (patch)
treebb1c4f6d3e3514585728b29ddf3d4d052e223b15 /integration/bunjs-only-snippets/setInterval.test.js
parent9ccb520e9e93cf85227eb37febec6acdf45bd9cf (diff)
downloadbun-114c0e8ed2a0eea835139ece3677efce09a8b702.tar.gz
bun-114c0e8ed2a0eea835139ece3677efce09a8b702.tar.zst
bun-114c0e8ed2a0eea835139ece3677efce09a8b702.zip
[bun.js] Implement `setTimeout`, `setInterval`, `clearTimeout`, `clearInterval`
Diffstat (limited to 'integration/bunjs-only-snippets/setInterval.test.js')
-rw-r--r--integration/bunjs-only-snippets/setInterval.test.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/integration/bunjs-only-snippets/setInterval.test.js b/integration/bunjs-only-snippets/setInterval.test.js
new file mode 100644
index 000000000..f633998cd
--- /dev/null
+++ b/integration/bunjs-only-snippets/setInterval.test.js
@@ -0,0 +1,35 @@
+import { it, expect } from "bun:test";
+
+it("setInterval", async () => {
+ var counter = 0;
+ var start;
+ const result = await new Promise((resolve, reject) => {
+ start = performance.now();
+
+ var id = setInterval(() => {
+ counter++;
+ if (counter === 10) {
+ resolve(counter);
+ clearInterval(id);
+ }
+ }, 1);
+ });
+
+ expect(result).toBe(10);
+ expect(performance.now() - start >= 10).toBe(true);
+});
+
+it("clearInterval", async () => {
+ var called = false;
+ const id = setInterval(() => {
+ called = true;
+ expect(false).toBe(true);
+ }, 1);
+ clearInterval(id);
+ await new Promise((resolve, reject) => {
+ setInterval(() => {
+ resolve();
+ }, 10);
+ });
+ expect(called).toBe(false);
+});