UNPKG

chrono-node

Version:

A natural language date parser in Javascript

68 lines (56 loc) 2.69 kB
import * as chrono from "../../src/"; import { testSingleCase, testUnexpectedResult } from "../test_util"; const REF = new Date(2012, 7, 10, 12); // 2012-08-10 test("Test - Strict rejects casual date expressions", () => { testUnexpectedResult(chrono.vi.strict, "h\u00f4m nay", REF); testUnexpectedResult(chrono.vi.strict, "h\u00f4m qua", REF); testUnexpectedResult(chrono.vi.strict, "ng\u00e0y mai", REF); testUnexpectedResult(chrono.vi.strict, "ng\u00e0y kia", REF); }); test("Test - Strict rejects casual time-of-day expressions", () => { testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i s\u00e1ng", REF); testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i tr\u01b0a", REF); testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i chi\u1ec1u", REF); testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i t\u1ed1i", REF); }); test("Test - Strict rejects casual relative expressions", () => { testUnexpectedResult(chrono.vi.strict, "tu\u1ea7n n\u00e0y", REF); testUnexpectedResult(chrono.vi.strict, "th\u00e1ng tr\u01b0\u1edbc", REF); testUnexpectedResult(chrono.vi.strict, "n\u0103m sau", REF); }); test("Test - Strict rejects weekday-only expressions", () => { testUnexpectedResult(chrono.vi.strict, "th\u1ee9 hai", REF); testUnexpectedResult(chrono.vi.strict, "ch\u1ee7 nh\u1eadt", REF); }); test("Test - Strict accepts standard full dates and times", () => { testSingleCase(chrono.vi.strict, "ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975", REF, (r) => { expect(r.start.get("year")).toBe(1975); expect(r.start.get("month")).toBe(4); expect(r.start.get("day")).toBe(30); }); testSingleCase(chrono.vi.strict, "l\u00fac 7 gi\u1edd 30 ph\u00fat", REF, (r) => { expect(r.start.get("hour")).toBe(7); expect(r.start.get("minute")).toBe(30); }); }); test("Test - Strict accepts slash dates", () => { testSingleCase(chrono.vi.strict, "30/4/1975", REF, (r) => { expect(r.start.get("day")).toBe(30); expect(r.start.get("month")).toBe(4); expect(r.start.get("year")).toBe(1975); }); testSingleCase(chrono.vi.strict, "15/3", REF, (r) => { expect(r.start.get("day")).toBe(15); expect(r.start.get("month")).toBe(3); }); }); test("Test - Strict accepts explicit time unit expressions", () => { testSingleCase(chrono.vi.strict, "3 ng\u00e0y tr\u01b0\u1edbc", REF, (r) => { expect(r.start.get("day")).toBe(7); expect(r.start.get("month")).toBe(8); }); testSingleCase(chrono.vi.strict, "2 tu\u1ea7n sau", REF, (r) => { expect(r.start.get("day")).toBe(24); expect(r.start.get("month")).toBe(8); }); });