summaryrefslogtreecommitdiff
path: root/tests/unit_node/timers_test.ts
diff options
context:
space:
mode:
authorMarvin Hagemeister <marvin@deno.com>2024-07-31 12:00:01 +0200
committerGitHub <noreply@github.com>2024-07-31 12:00:01 +0200
commit1e2581e57b46e5e7512ceb5637d6007db67c3ed4 (patch)
treec084c0233e9e55810d5ca0ff858d1346f1b2e899 /tests/unit_node/timers_test.ts
parentcd59fc53a528603112addfe8b10fe4e30d04e7f0 (diff)
fix(node/timers/promises): add scheduler APIs (#24802)
This PR adds the experimental `scheduler` APIs in Node's `timers/promises` module. See https://nodejs.org/api/timers.html#timerspromisesschedulerwaitdelay-options Fixes https://github.com/denoland/deno/issues/24800
Diffstat (limited to 'tests/unit_node/timers_test.ts')
-rw-r--r--tests/unit_node/timers_test.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/unit_node/timers_test.ts b/tests/unit_node/timers_test.ts
index 90c6fb150..868ba21d6 100644
--- a/tests/unit_node/timers_test.ts
+++ b/tests/unit_node/timers_test.ts
@@ -66,6 +66,29 @@ Deno.test("[node/timers/promises setTimeout]", () => {
return p;
});
+Deno.test("[node/timers/promises scheduler.wait]", async () => {
+ const { scheduler } = timersPromises;
+ let resolved = false;
+ timers.setTimeout(() => (resolved = true), 20);
+ const p = scheduler.wait(20);
+
+ assert(p instanceof Promise);
+ await p;
+ assert(resolved);
+});
+
+Deno.test("[node/timers/promises scheduler.yield]", async () => {
+ const { scheduler } = timersPromises;
+ let resolved = false;
+ timers.setImmediate(() => resolved = true);
+
+ const p = scheduler.yield();
+ assert(p instanceof Promise);
+ await p;
+
+ assert(resolved);
+});
+
// Regression test for https://github.com/denoland/deno/issues/17981
Deno.test("[node/timers refresh cancelled timer]", () => {
const { setTimeout, clearTimeout } = timers;