import { CHINA_UTC_OFFSET, addDaysToDateOnly, getWeekDayFromDateOnly, isConsecutiveDates, parseChinaDateOnly, } from './china-time'; describe('china-time', () => { it('exports UTC+8 offset', () => { expect(CHINA_UTC_OFFSET).toBe(8); }); it('addDaysToDateOnly crosses month/year boundaries', () => { expect(addDaysToDateOnly('2026-02-28', 1)).toBe('2026-03-01'); expect(addDaysToDateOnly('2026-12-31', 1)).toBe('2027-01-01'); expect(addDaysToDateOnly('2026-01-01', -1)).toBe('2025-12-31'); expect(addDaysToDateOnly('2026-08-09', 7)).toBe('2026-08-16'); }); it('getWeekDayFromDateOnly is timezone independent', () => { // 2026-08-09 是周日 → 7 expect(getWeekDayFromDateOnly('2026-08-09')).toBe(7); // 2026-08-10 是周一 → 1 expect(getWeekDayFromDateOnly('2026-08-10')).toBe(1); }); it('parseChinaDateOnly anchors to UTC+8 midnight', () => { const d = parseChinaDateOnly('2026-08-09'); expect(d.toISOString()).toBe('2026-08-08T16:00:00.000Z'); }); it('isConsecutiveDates detects adjacent dates', () => { expect(isConsecutiveDates('2026-08-09', '2026-08-10')).toBe(true); expect(isConsecutiveDates('2026-08-09', '2026-08-11')).toBe(false); expect(isConsecutiveDates('2026-08-09', '2026-08-09')).toBe(false); }); });