UNPKG

chrono-node

Version:

A natural language date parser in Javascript

244 lines (196 loc) 9.75 kB
import * as chrono from "../../src/"; import { testSingleCase, testUnexpectedResult } from "../test_util"; test("Test - Single Expression", function () { // 5 days ago, we did something testSingleCase(chrono.nl, "5 dagen geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(8); expect(result.start.get("day")).toBe(5); expect(result.index).toBe(0); expect(result.text).toBe("5 dagen geleden"); expect(result.start).toBeDate(new Date(2012, 8 - 1, 5)); }); // 10 days ago, we did something testSingleCase(chrono.nl, "10 dagen geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(7); expect(result.start.get("day")).toBe(31); expect(result.index).toBe(0); expect(result.text).toBe("10 dagen geleden"); expect(result.start).toBeDate(new Date(2012, 7 - 1, 31)); }); // 15 minute ago testSingleCase(chrono.nl, "15 minuten geleden", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("15 minuten geleden"); expect(result.start.get("hour")).toBe(11); expect(result.start.get("minute")).toBe(59); expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59)); }); // 15 minute earlier testSingleCase(chrono.nl, "15 minuten eerder", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("15 minuten eerder"); expect(result.start.get("hour")).toBe(11); expect(result.start.get("minute")).toBe(59); expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59)); }); // 15 minute before testSingleCase(chrono.nl, "15 minuten voor", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("15 minuten voor"); expect(result.start.get("hour")).toBe(11); expect(result.start.get("minute")).toBe(59); expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59)); }); // 12 hours ago testSingleCase(chrono.nl, " 12 uur geleden", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(3); expect(result.text).toBe("12 uur geleden"); expect(result.start.get("hour")).toBe(0); expect(result.start.get("minute")).toBe(14); expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14)); }); // 1h ago testSingleCase(chrono.nl, "1u geleden", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("1u geleden"); expect(result.start.get("hour")).toBe(11); expect(result.start.get("minute")).toBe(14); }); // half an hour ago testSingleCase(chrono.nl, " half uur geleden", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(3); expect(result.text).toBe("half uur geleden"); expect(result.start.get("hour")).toBe(11); expect(result.start.get("minute")).toBe(44); expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 44)); }); // 12 hours ago I did something testSingleCase(chrono.nl, "12 uur geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("12 uur geleden"); expect(result.start.get("hour")).toBe(0); expect(result.start.get("minute")).toBe(14); expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14)); }); // 12 seconds ago I did something testSingleCase(chrono.nl, "12 seconden geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("12 seconden geleden"); expect(result.start.get("hour")).toBe(12); expect(result.start.get("minute")).toBe(13); expect(result.start.get("second")).toBe(48); expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 48)); }); // three seconds ago I did something testSingleCase(chrono.nl, "drie seconden geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("drie seconden geleden"); expect(result.start.get("hour")).toBe(12); expect(result.start.get("minute")).toBe(13); expect(result.start.get("second")).toBe(57); expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 57)); }); // 5 Days ago, we did something testSingleCase(chrono.nl, "5 dagen geleden, hebben we iets gedaan", new Date(2012, 7, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(8); expect(result.start.get("day")).toBe(5); expect(result.index).toBe(0); expect(result.text).toBe("5 dagen geleden"); expect(result.start).toBeDate(new Date(2012, 8 - 1, 5)); }); // A days ago, we did something testSingleCase(chrono.nl, "Een dag geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(8); expect(result.start.get("day")).toBe(9); expect(result.index).toBe(0); expect(result.text).toBe("Een dag geleden"); expect(result.start).toBeDate(new Date(2012, 8 - 1, 9)); }); // a min before testSingleCase(chrono.nl, "een minuut geleden", new Date(2012, 7, 10, 12, 14), (result) => { expect(result.index).toBe(0); expect(result.text).toBe("een minuut geleden"); expect(result.start.get("hour")).toBe(12); expect(result.start.get("minute")).toBe(13); expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13)); }); }); test("Test - Single Expression (Casual)", function () { // 5 months ago, we did something testSingleCase(chrono.nl, "5 maanden geleden, hebben we iets gedaan", new Date(2012, 10 - 1, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(5); expect(result.start.get("day")).toBe(10); expect(result.index).toBe(0); expect(result.text).toBe("5 maanden geleden"); expect(result.start).toBeDate(new Date(2012, 5 - 1, 10)); }); // 5 years ago, we did something testSingleCase(chrono.nl, "5 jaar geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 10), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2007); expect(result.start.get("month")).toBe(8); expect(result.start.get("day")).toBe(10); expect(result.index).toBe(0); expect(result.text).toBe("5 jaar geleden"); expect(result.start).toBeDate(new Date(2007, 8 - 1, 10)); }); // a week ago, we did something testSingleCase(chrono.nl, "een week geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 3), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(7); expect(result.start.get("day")).toBe(27); expect(result.index).toBe(0); expect(result.text).toBe("een week geleden"); expect(result.start).toBeDate(new Date(2012, 7 - 1, 27)); }); // a couple of days ago, we did something testSingleCase(chrono.nl, "paar dagen geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 2), (result) => { expect(result.start).not.toBeNull(); expect(result.start.get("year")).toBe(2012); expect(result.start.get("month")).toBe(7); expect(result.start.get("day")).toBe(31); expect(result.index).toBe(0); expect(result.text).toBe("paar dagen geleden"); expect(result.start).toBeDate(new Date(2012, 7 - 1, 31)); }); }); test("Test - Nested time ago", function () { // 15 hours 29 min ago testSingleCase(chrono.nl, "15 uur 29 minuten geleden", new Date(2012, 7, 10, 22, 30), (result) => { expect(result.text).toBe("15 uur 29 minuten geleden"); expect(result.start.get("day")).toBe(10); expect(result.start.get("hour")).toBe(7); expect(result.start.get("minute")).toBe(1); }); // 1 day 21 hours ago testSingleCase(chrono.nl, "1 dag 21 uur geleden ", new Date(2012, 7, 10, 22, 30), (result) => { expect(result.text).toBe("1 dag 21 uur geleden"); expect(result.start.get("day")).toBe(9); expect(result.start.get("hour")).toBe(1); expect(result.start.get("minute")).toBe(30); }); // 3 min 49 sec ago testSingleCase(chrono.nl, "3 min 49 sec geleden ", new Date(2012, 7, 10, 22, 30), (result) => { expect(result.text).toBe("3 min 49 sec geleden"); expect(result.start.get("day")).toBe(10); expect(result.start.get("hour")).toBe(22); expect(result.start.get("minute")).toBe(26); expect(result.start.get("second")).toBe(11); }); }); test("Test - Negative cases", function () { testUnexpectedResult(chrono, "15 uur 29 min"); testUnexpectedResult(chrono, "een paar uur"); testUnexpectedResult(chrono, "5 dagen"); });