Skip to content

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éelle

Consultez Docs > Test Runner > Date and time pour la documentation complète sur la simulation avec le runner de tests Bun.

Bun édité par www.bunjs.com.cn