summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/timers_test.ts59
1 files changed, 18 insertions, 41 deletions
diff --git a/cli/tests/unit/timers_test.ts b/cli/tests/unit/timers_test.ts
index b36c8b94f..036900f7c 100644
--- a/cli/tests/unit/timers_test.ts
+++ b/cli/tests/unit/timers_test.ts
@@ -7,39 +7,16 @@ import {
assertNotEquals,
} from "./test_util.ts";
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-type AnyRecord = Record<any, any>;
-
-function deferred(): {
- promise: Promise<AnyRecord>;
- resolve: (value?: AnyRecord | PromiseLike<AnyRecord>) => void;
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- reject: (reason?: any) => void;
-} {
- let resolve: (value?: AnyRecord | PromiseLike<AnyRecord>) => void;
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- let reject: ((reason?: any) => void) | undefined = undefined;
- const promise = new Promise<AnyRecord>((res, rej): void => {
- resolve = res;
- reject = rej;
- });
- return {
- promise,
- resolve: resolve!,
- reject: reject!,
- };
-}
-
function waitForMs(ms: number): Promise<number> {
return new Promise((resolve: () => void): number => setTimeout(resolve, ms));
}
unitTest(async function timeoutSuccess(): Promise<void> {
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
let count = 0;
setTimeout((): void => {
count++;
- resolve();
+ promise.resolve();
}, 500);
await promise;
// count should increment
@@ -47,14 +24,14 @@ unitTest(async function timeoutSuccess(): Promise<void> {
});
unitTest(async function timeoutArgs(): Promise<void> {
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
const arg = 1;
setTimeout(
(a, b, c): void => {
assertEquals(a, arg);
assertEquals(b, arg.toString());
assertEquals(c, [arg]);
- resolve();
+ promise.resolve();
},
10,
arg,
@@ -102,13 +79,13 @@ unitTest(async function timeoutCancelMultiple(): Promise<void> {
unitTest(async function timeoutCancelInvalidSilentFail(): Promise<void> {
// Expect no panic
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
let count = 0;
const id = setTimeout((): void => {
count++;
// Should have no effect
clearTimeout(id);
- resolve();
+ promise.resolve();
}, 500);
await promise;
assertEquals(count, 1);
@@ -118,12 +95,12 @@ unitTest(async function timeoutCancelInvalidSilentFail(): Promise<void> {
});
unitTest(async function intervalSuccess(): Promise<void> {
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
let count = 0;
const id = setInterval((): void => {
count++;
clearInterval(id);
- resolve();
+ promise.resolve();
}, 100);
await promise;
// Clear interval
@@ -178,11 +155,11 @@ unitTest(async function fireCallbackImmediatelyWhenDelayOverMaxValue(): Promise<
});
unitTest(async function timeoutCallbackThis(): Promise<void> {
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
const obj = {
foo(): void {
assertEquals(this, window);
- resolve();
+ promise.resolve();
},
};
setTimeout(obj.foo, 1);
@@ -309,13 +286,13 @@ unitTest(async function timerMaxCpuBug(): Promise<void> {
unitTest(async function timerBasicMicrotaskOrdering(): Promise<void> {
let s = "";
let count = 0;
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
setTimeout(() => {
Promise.resolve().then(() => {
count++;
s += "de";
if (count === 2) {
- resolve();
+ promise.resolve();
}
});
});
@@ -323,7 +300,7 @@ unitTest(async function timerBasicMicrotaskOrdering(): Promise<void> {
count++;
s += "no";
if (count === 2) {
- resolve();
+ promise.resolve();
}
});
await promise;
@@ -332,7 +309,7 @@ unitTest(async function timerBasicMicrotaskOrdering(): Promise<void> {
unitTest(async function timerNestedMicrotaskOrdering(): Promise<void> {
let s = "";
- const { promise, resolve } = deferred();
+ const promise = createResolvable();
s += "0";
setTimeout(() => {
s += "4";
@@ -341,7 +318,7 @@ unitTest(async function timerNestedMicrotaskOrdering(): Promise<void> {
.then(() => {
setTimeout(() => {
s += "B";
- resolve();
+ promise.resolve();
});
})
.then(() => {
@@ -372,11 +349,11 @@ unitTest(function testQueueMicrotask() {
unitTest(async function timerIgnoresDateOverride(): Promise<void> {
const OriginalDate = Date;
- const { promise, resolve, reject } = deferred();
+ const promise = createResolvable();
let hasThrown = 0;
try {
const overrideCalled: () => number = () => {
- reject("global Date override used over original Date object");
+ promise.reject("global Date override used over original Date object");
return 0;
};
const DateOverride = (): void => {
@@ -386,7 +363,7 @@ unitTest(async function timerIgnoresDateOverride(): Promise<void> {
globalThis.Date.now = overrideCalled;
globalThis.Date.UTC = overrideCalled;
globalThis.Date.parse = overrideCalled;
- queueMicrotask(resolve);
+ queueMicrotask(promise.resolve);
await promise;
hasThrown = 1;
} catch (err) {