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.ru, "на этой неделе", 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.ru, "в этом месяце", 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.ru, "в этом месяце", 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.ru, "в этом году", 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.ru, "на прошлой неделе", 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.ru, "в прошлом месяце", 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.ru, "в прошлом году", 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.ru, "на следующей неделе", 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.ru, "в следующем месяце", 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.ru, "в следующем квартале", 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.ru, "в следующем году", 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);
});
});