Le runner de tests de Bun prend en charge la définition de l'heure système de manière programmatique avec la fonction setSystemTime.
ts
import { test, expect, setSystemTime } from "bun:test";
test("faire la fête comme en 1999", () => {
const date = new Date("1999-01-01T00:00:00.000Z");
setSystemTime(date); // nous sommes maintenant le 1er janvier 1999
const now = new Date();
expect(now.getFullYear()).toBe(1999);
expect(now.getMonth()).toBe(0);
expect(now.getDate()).toBe(1);
});La fonction setSystemTime est couramment utilisée en conjonction avec les Lifecycle Hooks pour configurer un environnement de test avec une "horloge factice" déterministe.
ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";
beforeAll(() => {
const date = new Date("1999-01-01T00:00:00.000Z");
setSystemTime(date); // nous sommes maintenant le 1er janvier 1999
});
// tests...Pour réinitialiser l'horloge système à l'heure réelle, appelez setSystemTime sans arguments.
ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";
setSystemTime(); // réinitialiser à l'heure réelleConsultez Docs > Test Runner > Date and time pour la documentation complète sur la simulation avec le runner de tests Bun.