1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 |
|
4 | test("Test - Single Expression", () => {
|
5 | testSingleCase(chrono.uk.casual, "Дедлайн сьогодні", new Date(2012, 7, 10, 17, 10), (result) => {
|
6 | expect(result.index).toBe(8);
|
7 | expect(result.text).toBe("сьогодні");
|
8 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 10));
|
9 | });
|
10 |
|
11 | testSingleCase(chrono.uk.casual, "Дедлайн завтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
12 | expect(result.index).toBe(8);
|
13 | expect(result.text).toBe("завтра");
|
14 | expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
|
15 | });
|
16 |
|
17 | testSingleCase(chrono.uk.casual, "Дедлайн післязавтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
18 | expect(result.index).toBe(8);
|
19 | expect(result.text).toBe("післязавтра");
|
20 | expect(result.start).toBeDate(new Date(2012, 7, 12, 17, 10));
|
21 | });
|
22 |
|
23 | testSingleCase(chrono.uk.casual, "Дедлайн післяпіслязавтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
24 | expect(result.index).toBe(8);
|
25 | expect(result.text).toBe("післяпіслязавтра");
|
26 | expect(result.start).toBeDate(new Date(2012, 7, 13, 17, 10));
|
27 | });
|
28 |
|
29 | testSingleCase(chrono.uk.casual, "Дедлайн вчора", new Date(2012, 7, 10, 17, 10), (result) => {
|
30 | expect(result.index).toBe(8);
|
31 | expect(result.text).toBe("вчора");
|
32 | expect(result.start).toBeDate(new Date(2012, 7, 9, 17, 10));
|
33 | });
|
34 |
|
35 | testSingleCase(chrono.uk.casual, "Дедлайн позавчора", new Date(2012, 7, 10, 17, 10), (result) => {
|
36 | expect(result.index).toBe(8);
|
37 | expect(result.text).toBe("позавчора");
|
38 | expect(result.start).toBeDate(new Date(2012, 7, 8, 17, 10));
|
39 | });
|
40 |
|
41 | testSingleCase(chrono.uk.casual, "Дедлайн позапозавчора", new Date(2012, 7, 10, 17, 10), (result) => {
|
42 | expect(result.index).toBe(8);
|
43 | expect(result.text).toBe("позапозавчора");
|
44 | expect(result.start).toBeDate(new Date(2012, 7, 7, 17, 10));
|
45 | });
|
46 |
|
47 | testSingleCase(chrono.uk.casual, "Дедлайн зараз", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
48 | expect(result.index).toBe(8);
|
49 | expect(result.text).toBe("зараз");
|
50 | expect(result.start).toBeDate(result.refDate);
|
51 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
|
52 | });
|
53 |
|
54 | testSingleCase(chrono.uk.casual, "Дедлайн вранці", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
55 | expect(result.index).toBe(8);
|
56 | expect(result.text).toBe("вранці");
|
57 | expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
|
58 | });
|
59 |
|
60 | testSingleCase(chrono.uk.casual, "Дедлайн цього ранку", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
61 | expect(result.index).toBe(8);
|
62 | expect(result.text).toBe("цього ранку");
|
63 | expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
|
64 | });
|
65 |
|
66 | testSingleCase(chrono.uk.casual, "Дедлайн опівдні", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
67 | expect(result.index).toBe(8);
|
68 | expect(result.text).toBe("опівдні");
|
69 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 0, 0, 0));
|
70 | });
|
71 |
|
72 | testSingleCase(chrono.uk.casual, "Дедлайн минулого вечора", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
73 | expect(result.index).toBe(8);
|
74 | expect(result.text).toBe("минулого вечора");
|
75 | expect(result.start).toBeDate(new Date(2012, 7, 9, 20, 0, 0, 0));
|
76 | });
|
77 |
|
78 | testSingleCase(chrono.uk.casual, "Дедлайн ввечері", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
79 | expect(result.index).toBe(8);
|
80 | expect(result.text).toBe("ввечері");
|
81 | expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 0, 0, 0));
|
82 | });
|
83 |
|
84 | testSingleCase(chrono.uk.casual, "Дедлайн минулої ночі", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
85 | expect(result.index).toBe(8);
|
86 | expect(result.text).toBe("минулої ночі");
|
87 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
88 | });
|
89 |
|
90 | testSingleCase(chrono.uk.casual, "Дедлайн сьогодні вночі", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
91 | expect(result.index).toBe(8);
|
92 | expect(result.text).toBe("сьогодні вночі");
|
93 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
94 | });
|
95 |
|
96 | testSingleCase(chrono.uk.casual, "Дедлайн цієї ночі", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
97 | expect(result.index).toBe(8);
|
98 | expect(result.text).toBe("цієї ночі");
|
99 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
100 | });
|
101 |
|
102 | testSingleCase(chrono.uk.casual, "Дедлайн вночі", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
103 | expect(result.index).toBe(8);
|
104 | expect(result.text).toBe("вночі");
|
105 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
106 | });
|
107 |
|
108 | testSingleCase(chrono.uk.casual, "Дедлайн опівночі", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
109 | expect(result.index).toBe(8);
|
110 | expect(result.text).toBe("опівночі");
|
111 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
112 | });
|
113 | });
|
114 |
|
115 | test("Test - Combined Expression", () => {
|
116 | testSingleCase(chrono.uk.casual, "Дедлайн вчора ввечері", new Date(2012, 7, 10, 12), (result) => {
|
117 | expect(result.index).toBe(8);
|
118 | expect(result.text).toBe("вчора ввечері");
|
119 | expect(result.start).toBeDate(new Date(2012, 7, 9, 20));
|
120 | });
|
121 |
|
122 | testSingleCase(chrono.uk.casual, "Дедлайн завтра вранці", new Date(2012, 8, 10, 14), (result) => {
|
123 | expect(result.index).toBe(8);
|
124 | expect(result.text).toBe("завтра вранці");
|
125 | expect(result.start).toBeDate(new Date(2012, 8, 11, 6));
|
126 | });
|
127 | });
|
128 |
|
129 | test("Test - Casual date range", () => {
|
130 | testSingleCase(chrono.uk.casual, "Подія від сьогодні і до післязавтра", new Date(2012, 7, 4, 12), (result) => {
|
131 | expect(result.index).toBe(6);
|
132 | expect(result.text).toBe("від сьогодні і до післязавтра");
|
133 | expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
|
134 | expect(result.end).toBeDate(new Date(2012, 7, 6, 12));
|
135 | });
|
136 |
|
137 | testSingleCase(chrono.uk.casual, "Подія сьогодні-завтра", new Date(2012, 7, 10, 12), (result) => {
|
138 | expect(result.index).toBe(6);
|
139 | expect(result.text).toBe("сьогодні-завтра");
|
140 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
|
141 | expect(result.end).toBeDate(new Date(2012, 7, 11, 12));
|
142 | });
|
143 | });
|
144 |
|
145 | test("Test - Random negative text", () => {
|
146 | testUnexpectedResult(chrono.uk, "несьогодні");
|
147 |
|
148 | testUnexpectedResult(chrono.uk, "звтра");
|
149 |
|
150 | testUnexpectedResult(chrono.uk, "ввчора");
|
151 |
|
152 | testUnexpectedResult(chrono.uk, "січен");
|
153 | });
|