import * as chrono from "../../src/"; import { testSingleCase } from "../test_util"; const REF = new Date(2012, 7, 10, 12); // 2012-08-10 noon test("Test - sáng (morning, AM)", () => { // "buổi sáng" is a time-of-day modifier; test it with an explicit time expression testSingleCase(chrono.vi, "7 giờ sáng", REF, (r) => { expect(r.start.get("hour")).toBe(7); expect(r.start.get("meridiem")).toBe(0); // AM }); // standalone "sáng" sets implied hour=9, AM testSingleCase(chrono.vi, "hôm nay buổi sáng", new Date(2012, 7, 10, 6), (r) => { expect(r.start.get("hour")).toBe(9); expect(r.start.get("meridiem")).toBe(0); // AM }); }); test("Test - trưa (noon, PM)", () => { testSingleCase(chrono.vi, "buổi trưa", REF, (r) => { expect(r.start.get("hour")).toBe(12); expect(r.start.get("meridiem")).toBe(1); // PM — noon is 12:00 PM }); }); test("Test - chiều (afternoon, PM)", () => { testSingleCase(chrono.vi, "buổi chiều", REF, (r) => { expect(r.start.get("hour")).toBe(15); expect(r.start.get("meridiem")).toBe(1); // PM }); }); test("Test - tối (evening, PM)", () => { testSingleCase(chrono.vi, "buổi tối", REF, (r) => { expect(r.start.get("hour")).toBe(19); expect(r.start.get("meridiem")).toBe(1); // PM }); }); test("Test - đêm (late night, PM)", () => { testSingleCase(chrono.vi, "buổi đêm", REF, (r) => { expect(r.start.get("hour")).toBe(22); expect(r.start.get("meridiem")).toBe(1); // PM }); // Standalone "đêm" without "buổi" prefix — works after removing \b from pattern testSingleCase(chrono.vi, "đêm", REF, (r) => { expect(r.start.get("hour")).toBe(22); expect(r.start.get("meridiem")).toBe(1); // PM }); }); test("Test - nửa đêm (midnight, AM)", () => { testSingleCase(chrono.vi, "nửa đêm", REF, (r) => { expect(r.start.get("hour")).toBe(0); expect(r.start.get("meridiem")).toBe(0); // AM }); }); test("Test - bình minh / sáng sớm (dawn)", () => { testSingleCase(chrono.vi, "bình minh", REF, (r) => { expect(r.start.get("hour")).toBe(6); expect(r.start.get("meridiem")).toBe(0); // AM }); testSingleCase(chrono.vi, "sáng sớm", REF, (r) => { expect(r.start.get("hour")).toBe(6); expect(r.start.get("meridiem")).toBe(0); // AM }); }); test("Test - time keyword merges with date", () => { testSingleCase(chrono.vi, "hôm nay buổi chiều", REF, (r) => { expect(r.start.get("day")).toBe(10); expect(r.start.get("hour")).toBe(15); }); });