Skip to content

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 effettivo

Vedi Docs > Test Runner > Date and time per la documentazione completa sulla simulazione con il test runner di Bun.

Bun a cura di www.bunjs.com.cn