Il test runner di Bun supporta l'impostazione dell'orario di sistema a livello di codice con la funzione setSystemTime.
ts
import { test, expect, setSystemTime } from "bun:test";
test("festeggia come se fosse il 1999", () => {
const date = new Date("1999-01-01T00:00:00.000Z");
setSystemTime(date); // ora è il 1 gennaio 1999
const now = new Date();
expect(now.getFullYear()).toBe(1999);
expect(now.getMonth()).toBe(0);
expect(now.getDate()).toBe(1);
});La funzione setSystemTime è comunemente usata insieme agli Hook del ciclo di vita per configurare un ambiente di test con un "orologio finto" deterministico.
ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";
beforeAll(() => {
const date = new Date("1999-01-01T00:00:00.000Z");
setSystemTime(date); // ora è il 1 gennaio 1999
});
// test...Per reimpostare l'orologio di sistema all'orario effettivo, chiama setSystemTime senza argomenti.
ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";
setSystemTime(); // reimposta all'orario effettivoVedi Docs > Test Runner > Date and time per la documentazione completa sulla simulazione con il test runner di Bun.