summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-08-10 06:01:35 +0200
committerGitHub <noreply@github.com>2023-08-10 04:01:35 +0000
commit8f854782b13658f169920a1a7a21b8e6b64a0c00 (patch)
tree16f69266d92a8dbd78dee48f27e8efccf670baa5 /cli
parent2507d6fa102488ed77b41a5893b311830f6fe9c9 (diff)
fix(ext/timers): some timers are not resolved (#20055)
Fixes https://github.com/denoland/deno/issues/19866
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/unit/timers_test.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/cli/tests/unit/timers_test.ts b/cli/tests/unit/timers_test.ts
index c50cb779c..5c076ad09 100644
--- a/cli/tests/unit/timers_test.ts
+++ b/cli/tests/unit/timers_test.ts
@@ -727,3 +727,32 @@ Deno.test({
assertEquals(output, "");
},
});
+
+// Regression test for https://github.com/denoland/deno/issues/19866
+Deno.test({
+ name: "regression for #19866",
+ fn: async () => {
+ const timeoutsFired = [];
+
+ // deno-lint-ignore require-await
+ async function start(n: number) {
+ let i = 0;
+ const intervalId = setInterval(() => {
+ i++;
+ if (i > 2) {
+ clearInterval(intervalId!);
+ }
+ timeoutsFired.push(n);
+ }, 20);
+ }
+
+ for (let n = 0; n < 100; n++) {
+ start(n);
+ }
+
+ // 3s should be plenty of time for all the intervals to fire
+ // but it might still be flaky on CI.
+ await new Promise((resolve) => setTimeout(resolve, 3000));
+ assertEquals(timeoutsFired.length, 300);
+ },
+});