Files
clean-architecture-frontend…/tests/unit/system-clock.test.ts
T

19 lines
686 B
TypeScript

import { describe, expect, it, vi } from "vitest";
import { systemClock } from "../../src/adapters/platform/system-clock.ts";
describe("systemClock", () => {
it("resolves after the requested duration", async () => {
vi.useFakeTimers();
const caller = new AbortController();
const add = vi.spyOn(caller.signal, "addEventListener");
const remove = vi.spyOn(caller.signal, "removeEventListener");
const sleeper = systemClock.sleep(250, caller.signal);
await vi.advanceTimersByTimeAsync(250);
await expect(sleeper).resolves.toBeUndefined();
expect(add).toHaveBeenCalledOnce();
expect(remove).toHaveBeenCalledOnce();
vi.useRealTimers();
});
});