mirror of
https://github.com/hanzoai/jest.git
synced 2026-09-24 16:59:57 +00:00
71 lines
2.2 KiB
JavaScript
71 lines
2.2 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const DATE = new Date('2026-01-01T00:00:00Z');
|
|
const EPOCH_MS = DATE.getTime();
|
|
const ISO = DATE.toISOString();
|
|
|
|
describe('Temporal support in fake timers', () => {
|
|
afterEach(() => {
|
|
jest.useRealTimers();
|
|
});
|
|
|
|
test('fakes Temporal.Now.instant()', () => {
|
|
jest.useFakeTimers({now: EPOCH_MS});
|
|
expect(Temporal.Now.instant().epochMilliseconds).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('fakes Temporal.Now.zonedDateTimeISO()', () => {
|
|
jest.useFakeTimers({now: EPOCH_MS});
|
|
expect(Temporal.Now.zonedDateTimeISO('UTC').epochMilliseconds).toBe(
|
|
EPOCH_MS,
|
|
);
|
|
});
|
|
|
|
test('Temporal.Now follows setSystemTime', () => {
|
|
jest.useFakeTimers({now: 0});
|
|
jest.setSystemTime(EPOCH_MS);
|
|
expect(Temporal.Now.instant().epochMilliseconds).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('useFakeTimers({now}) accepts Temporal.Instant', () => {
|
|
jest.useFakeTimers({now: Temporal.Instant.from(ISO)});
|
|
expect(Date.now()).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('useFakeTimers({now}) accepts Temporal.ZonedDateTime', () => {
|
|
const zdt = Temporal.Instant.from(ISO).toZonedDateTimeISO('UTC');
|
|
jest.useFakeTimers({now: zdt});
|
|
expect(Date.now()).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('setSystemTime accepts Temporal.Instant', () => {
|
|
jest.useFakeTimers();
|
|
jest.setSystemTime(Temporal.Instant.from(ISO));
|
|
expect(Date.now()).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('setSystemTime accepts Temporal.ZonedDateTime', () => {
|
|
jest.useFakeTimers();
|
|
const zdt = Temporal.Instant.from(ISO).toZonedDateTimeISO('UTC');
|
|
jest.setSystemTime(zdt);
|
|
expect(Date.now()).toBe(EPOCH_MS);
|
|
});
|
|
|
|
test('advanceTimersByTime accepts Temporal.Duration', () => {
|
|
jest.useFakeTimers({now: EPOCH_MS});
|
|
jest.advanceTimersByTime(Temporal.Duration.from({hours: 1}));
|
|
expect(Date.now()).toBe(EPOCH_MS + 3_600_000);
|
|
});
|
|
|
|
test('advanceTimersByTimeAsync accepts Temporal.Duration', async () => {
|
|
jest.useFakeTimers({now: EPOCH_MS});
|
|
await jest.advanceTimersByTimeAsync(Temporal.Duration.from({minutes: 30}));
|
|
expect(Date.now()).toBe(EPOCH_MS + 1_800_000);
|
|
});
|
|
});
|