UNPKG

chrono-node

Version:

A natural language date parser in Javascript

85 lines (74 loc) 3.39 kB
import * as chrono from "../../src/"; import { testSingleCase } from "../test_util"; test("Test - h\u00f4m nay (today)", () => { testSingleCase(chrono.vi, "Cu\u1ed9c h\u1ecdn h\u00f4m nay.", new Date(2012, 7, 10, 12), (r) => { expect(r.index).toBe(9); expect(r.text).toBe("h\u00f4m nay"); expect(r.start.get("year")).toBe(2012); expect(r.start.get("month")).toBe(8); expect(r.start.get("day")).toBe(10); expect(r.start).toBeDate(new Date(2012, 7, 10, 12)); }); }); test("Test - h\u00f4m qua (yesterday)", () => { testSingleCase(chrono.vi, "H\u1ed9i ngh\u1ecb h\u00f4m qua.", new Date(2012, 7, 10, 12), (r) => { expect(r.index).toBe(9); expect(r.text).toBe("h\u00f4m qua"); expect(r.start.get("year")).toBe(2012); expect(r.start.get("month")).toBe(8); expect(r.start.get("day")).toBe(9); expect(r.start).toBeDate(new Date(2012, 7, 9, 12)); }); testSingleCase(chrono.vi, "h\u00f4m qua", new Date(2012, 7, 1, 12), (r) => { expect(r.start.get("month")).toBe(7); // July — crosses month boundary expect(r.start.get("day")).toBe(31); }); }); test("Test - ng\u00e0y mai (tomorrow)", () => { testSingleCase(chrono.vi, "L\u1ecbch ng\u00e0y mai.", new Date(2012, 7, 10, 12), (r) => { expect(r.index).toBe(5); expect(r.text).toBe("ng\u00e0y mai"); expect(r.start.get("day")).toBe(11); expect(r.start.get("month")).toBe(8); expect(r.start).toBeDate(new Date(2012, 7, 11, 12)); }); testSingleCase(chrono.vi, "ng\u00e0y mai", new Date(2012, 7, 31, 12), (r) => { expect(r.start.get("month")).toBe(9); // Sept — crosses month boundary expect(r.start.get("day")).toBe(1); }); }); test("Test - ng\u00e0y kia (day after tomorrow)", () => { testSingleCase(chrono.vi, "ng\u00e0y kia", new Date(2012, 7, 10, 12), (r) => { expect(r.text).toBe("ng\u00e0y kia"); expect(r.start.get("day")).toBe(12); }); }); test("Test - b\u00e2y gi\u1edd / l\u00fac n\u00e0y (now)", () => { testSingleCase(chrono.vi, "b\u00e2y gi\u1edd", new Date(2012, 7, 10, 8, 9, 10, 11), (r) => { expect(r.start.get("year")).toBe(2012); expect(r.start.get("month")).toBe(8); expect(r.start.get("day")).toBe(10); expect(r.start.get("hour")).toBe(8); expect(r.start.get("minute")).toBe(9); expect(r.start.get("second")).toBe(10); expect(r.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11)); }); testSingleCase(chrono.vi, "l\u00fac n\u00e0y", new Date(2012, 7, 10, 8, 9, 10, 11), (r) => { expect(r.start.get("hour")).toBe(8); }); }); test("Test - hôm kia (day before yesterday, -2)", () => { testSingleCase(chrono.vi, "hôm kia", new Date(2012, 7, 10, 12), (r) => { expect(r.start.get("year")).toBe(2012); expect(r.start.get("month")).toBe(8); expect(r.start.get("day")).toBe(8); // 10 - 2 }); }); test("Test - isCertain: casual date sets day/month/year certain, hour not", () => { testSingleCase(chrono.vi, "hôm nay", new Date(2012, 7, 10, 12), (r) => { expect(r.start.isCertain("day")).toBe(true); expect(r.start.isCertain("month")).toBe(true); expect(r.start.isCertain("year")).toBe(true); expect(r.start.isCertain("hour")).toBe(false); }); });