Skip to content
This repository was archived by the owner on Apr 18, 2022. It is now read-only.
This repository was archived by the owner on Apr 18, 2022. It is now read-only.

Improve test coverage for time.ts #7

Description

@KyleJune

I removed the last 2 tests here because they relied on system time and would intermittently fail. Need to figure out a better way to test FakeTime.

mock/time_test.ts

Lines 303 to 360 in a22be7f

Deno.test("FakeTime ticks forward when advanceRate is set", async () => {
let time: FakeTime = new FakeTime(null, { advanceRate: 1 });
let start: number = Date.now();
try {
assertEquals(Date.now(), start);
await delay(11);
assertEquals(Date.now(), start + 10);
await delay(6);
assertEquals(Date.now(), start + 10);
await delay(16);
assertEquals(Date.now(), start + 30);
time.restore();
time = new FakeTime(null, { advanceRate: 1000 });
start = Date.now();
assertEquals(Date.now(), start);
await delay(11);
assertEquals(Date.now(), start + 10000);
await delay(6);
assertEquals(Date.now(), start + 10000);
await delay(16);
assertEquals(Date.now(), start + 30000);
} finally {
time.restore();
}
});
Deno.test("FakeTime ticks forward at advanceFrequency when advanceRate is set", async () => {
let time: FakeTime = new FakeTime(
null,
{ advanceRate: 1, advanceFrequency: 15 },
);
let start: number = Date.now();
try {
assertEquals(Date.now(), start);
await delay(16);
assertEquals(Date.now(), start + 15);
await delay(11);
assertEquals(Date.now(), start + 15);
await delay(21);
assertEquals(Date.now(), start + 45);
time.restore();
time = new FakeTime(null, { advanceRate: 1000, advanceFrequency: 15 });
start = Date.now();
assertEquals(Date.now(), start);
await delay(16);
assertEquals(Date.now(), start + 15000);
await delay(11);
assertEquals(Date.now(), start + 15000);
await delay(21);
assertEquals(Date.now(), start + 45000);
} finally {
time.restore();
}
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions