chrono-node
Version:
A natural language date parser in Javascript
108 lines (96 loc) • 4.71 kB
text/typescript
import * as chrono from "../../src";
import { testSingleCase } from "../test_util";
test("Test - 'This' expressions", () => {
testSingleCase(chrono.uk, "на цьому тижні", new Date(2017, 11 - 1, 19, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(11);
expect(result.start.get("day")).toBe(19);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "у цьому місяці", new Date(2017, 11 - 1, 19, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(11);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "цього місяця", new Date(2017, 11 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(11);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "у цьому році", new Date(2017, 11 - 1, 19, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(1);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
});
test("Test - Past relative expressions", () => {
testSingleCase(chrono.uk, "на минулому тижні", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
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(24);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "минулого місяця", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
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(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "у минулому році", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2015);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
});
test("Test - Future relative expressions", () => {
testSingleCase(chrono.uk, "на наступному тижні", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
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(8);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "наступного місяця", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(11);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "в наступному кварталі", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(1);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
testSingleCase(chrono.uk, "наступного року", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.index).toBe(0);
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);
});
});