import { describe, it, expect } from "vitest"; import { quickToDate, buildCustomDate, formatCustomDay } from "./time-parsing.js"; describe("quickToDate", () => { it("now returns ~30s ahead", () => { const d = quickToDate("now"); const diffMs = d.getTime() - Date.now(); expect(diffMs).toBeGreaterThan(20 * 1000); expect(diffMs).toBeLessThan(40 * 1000); }); it("tomorrow_9am returns a future Date", () => { const d = quickToDate("tomorrow_9am"); expect(d.getTime()).toBeGreaterThan(Date.now()); }); }); describe("buildCustomDate", () => { it("rejects in-past day/hour/minute", () => { const r = buildCustomDate(-1, 9, 0, "Asia/Kuala_Lumpur"); expect(r.ok).toBe(false); if (!r.ok) expect(r.reason).toMatch(/past/i); }); it("accepts a far-future combination", () => { const r = buildCustomDate(7, 23, 45, "Asia/Kuala_Lumpur"); expect(r.ok).toBe(true); }); }); describe("formatCustomDay", () => { it("returns 'Today (...)' for offset 0", () => { expect(formatCustomDay(0, "Asia/Kuala_Lumpur")).toMatch(/^Today/); }); it("returns 'Tomorrow (...)' for offset 1", () => { expect(formatCustomDay(1, "Asia/Kuala_Lumpur")).toMatch(/^Tomorrow/); }); });