chrono-node
Version:
A natural language date parser in Javascript
118 lines (100 loc) • 5.01 kB
text/typescript
import * as chrono from "../../src";
import { testSingleCase } from "../test_util";
test("Test - Positive time units", () => {
testSingleCase(chrono.fi, "seuraavat 2 viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(15);
});
testSingleCase(chrono.fi, "seuraavat 2 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(3);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "seuraavat kaksi vuotta", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2018);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "seuraavat 2 viikkoa 3 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(18);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "seuraava yksi vuotta", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
});
test("Test - Negative time units", () => {
testSingleCase(chrono.fi, "edelliset 2 viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(9);
expect(result.start.get("day")).toBe(17);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "viimeiset 2 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(9);
expect(result.start.get("day")).toBe(29);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "kuluneet kaksi viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(9);
expect(result.start.get("day")).toBe(17);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.fi, "+2 kuukautta 5 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(12);
expect(result.start.get("day")).toBe(6);
expect(result.start.get("hour")).toBe(12);
});
});
test("Test - Plus '+' sign", () => {
testSingleCase(chrono.fi.casual, "+15 minuuttia", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("hour")).toBe(12);
expect(result.start.get("minute")).toBe(29);
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
});
testSingleCase(chrono.fi.casual, "+15min", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("hour")).toBe(12);
expect(result.start.get("minute")).toBe(29);
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
});
testSingleCase(chrono.fi.casual, "+1 päivä 2 tuntia", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("day")).toBe(11);
expect(result.start.get("hour")).toBe(14);
expect(result.start.get("minute")).toBe(14);
expect(result.start).toBeDate(new Date(2012, 7 - 1, 11, 14, 14));
});
});
test("Test - Minus '-' sign", () => {
testSingleCase(chrono.fi.casual, "-3vuotta", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(7);
expect(result.start.get("day")).toBe(10);
expect(result.start.get("hour")).toBe(12);
expect(result.start.get("minute")).toBe(14);
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 14));
});
});