From d52e4007c887caaa073e43088fd92c3589a41dd5 Mon Sep 17 00:00:00 2001 From: Kyle June Date: Sat, 4 Jul 2020 15:16:27 -0400 Subject: Update timers to ignore Date Override (#6552) --- cli/tests/unit/timers_test.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'cli/tests') diff --git a/cli/tests/unit/timers_test.ts b/cli/tests/unit/timers_test.ts index 7adff0095..8a22173de 100644 --- a/cli/tests/unit/timers_test.ts +++ b/cli/tests/unit/timers_test.ts @@ -366,3 +366,37 @@ unitTest(async function timerNestedMicrotaskOrdering(): Promise { unitTest(function testQueueMicrotask() { assertEquals(typeof queueMicrotask, "function"); }); + +unitTest(async function timerIgnoresDateOverride(): Promise { + const OriginalDate = Date; + const { promise, resolve, reject } = deferred(); + let hasThrown = 0; + try { + const overrideCalled: () => number = () => { + reject("global Date override used over original Date object"); + return 0; + }; + function DateOverride(): void { + overrideCalled(); + } + globalThis.Date = DateOverride as DateConstructor; + globalThis.Date.now = overrideCalled; + globalThis.Date.UTC = overrideCalled; + globalThis.Date.parse = overrideCalled; + queueMicrotask(resolve); + await promise; + hasThrown = 1; + } catch (err) { + if (typeof err === "string") { + assertEquals(err, "global Date override used over original Date object"); + hasThrown = 2; + } else if (err instanceof TypeError) { + hasThrown = 3; + } else { + hasThrown = 4; + } + } finally { + globalThis.Date = OriginalDate; + } + assertEquals(hasThrown, 1); +}); -- cgit v1.2.3