Skip to content

O runner de testes do Bun suporta definir o horário do sistema programaticamente com a função setSystemTime.

ts
import { test, expect, setSystemTime } from "bun:test";

test("festejar como se fosse 1999", () => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // agora é 1 de janeiro de 1999

  const now = new Date();
  expect(now.getFullYear()).toBe(1999);
  expect(now.getMonth()).toBe(0);
  expect(now.getDate()).toBe(1);
});

A função setSystemTime é comumente usada em conjunto com Hooks de Ciclo de Vida para configurar um ambiente de teste com um "relógio falso" determinístico.

ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";

beforeAll(() => {
  const date = new Date("1999-01-01T00:00:00.000Z");
  setSystemTime(date); // agora é 1 de janeiro de 1999
});

// testes...

Para redefinir o relógio do sistema para o horário real, chame setSystemTime sem argumentos.

ts
import { test, expect, beforeAll, setSystemTime } from "bun:test";

setSystemTime(); // redefinir para o horário real

Consulte Docs > Test Runner > Date and time para documentação completa sobre mock com o runner de testes do Bun.

Bun by www.bunjs.com.cn edit