1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 |
|
4 | test("Test - Single Expression", function () {
|
5 |
|
6 | testSingleCase(chrono.nl, "5 dagen geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => {
|
7 | expect(result.start).not.toBeNull();
|
8 | expect(result.start.get("year")).toBe(2012);
|
9 | expect(result.start.get("month")).toBe(8);
|
10 | expect(result.start.get("day")).toBe(5);
|
11 |
|
12 | expect(result.index).toBe(0);
|
13 | expect(result.text).toBe("5 dagen geleden");
|
14 |
|
15 | expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
|
16 | });
|
17 |
|
18 |
|
19 | testSingleCase(chrono.nl, "10 dagen geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => {
|
20 | expect(result.start).not.toBeNull();
|
21 | expect(result.start.get("year")).toBe(2012);
|
22 | expect(result.start.get("month")).toBe(7);
|
23 | expect(result.start.get("day")).toBe(31);
|
24 |
|
25 | expect(result.index).toBe(0);
|
26 | expect(result.text).toBe("10 dagen geleden");
|
27 |
|
28 | expect(result.start).toBeDate(new Date(2012, 7 - 1, 31));
|
29 | });
|
30 |
|
31 |
|
32 | testSingleCase(chrono.nl, "15 minuten geleden", new Date(2012, 7, 10, 12, 14), (result) => {
|
33 | expect(result.index).toBe(0);
|
34 | expect(result.text).toBe("15 minuten geleden");
|
35 | expect(result.start.get("hour")).toBe(11);
|
36 | expect(result.start.get("minute")).toBe(59);
|
37 |
|
38 | expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
|
39 | });
|
40 |
|
41 |
|
42 | testSingleCase(chrono.nl, "15 minuten eerder", new Date(2012, 7, 10, 12, 14), (result) => {
|
43 | expect(result.index).toBe(0);
|
44 | expect(result.text).toBe("15 minuten eerder");
|
45 | expect(result.start.get("hour")).toBe(11);
|
46 | expect(result.start.get("minute")).toBe(59);
|
47 |
|
48 | expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
|
49 | });
|
50 |
|
51 |
|
52 | testSingleCase(chrono.nl, "15 minuten voor", new Date(2012, 7, 10, 12, 14), (result) => {
|
53 | expect(result.index).toBe(0);
|
54 | expect(result.text).toBe("15 minuten voor");
|
55 | expect(result.start.get("hour")).toBe(11);
|
56 | expect(result.start.get("minute")).toBe(59);
|
57 |
|
58 | expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
|
59 | });
|
60 |
|
61 |
|
62 | testSingleCase(chrono.nl, " 12 uur geleden", new Date(2012, 7, 10, 12, 14), (result) => {
|
63 | expect(result.index).toBe(3);
|
64 | expect(result.text).toBe("12 uur geleden");
|
65 | expect(result.start.get("hour")).toBe(0);
|
66 | expect(result.start.get("minute")).toBe(14);
|
67 |
|
68 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
|
69 | });
|
70 |
|
71 |
|
72 | testSingleCase(chrono.nl, "1u geleden", new Date(2012, 7, 10, 12, 14), (result) => {
|
73 | expect(result.index).toBe(0);
|
74 | expect(result.text).toBe("1u geleden");
|
75 | expect(result.start.get("hour")).toBe(11);
|
76 | expect(result.start.get("minute")).toBe(14);
|
77 | });
|
78 |
|
79 |
|
80 | testSingleCase(chrono.nl, " half uur geleden", new Date(2012, 7, 10, 12, 14), (result) => {
|
81 | expect(result.index).toBe(3);
|
82 | expect(result.text).toBe("half uur geleden");
|
83 | expect(result.start.get("hour")).toBe(11);
|
84 | expect(result.start.get("minute")).toBe(44);
|
85 |
|
86 | expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 44));
|
87 | });
|
88 |
|
89 |
|
90 | testSingleCase(chrono.nl, "12 uur geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => {
|
91 | expect(result.index).toBe(0);
|
92 | expect(result.text).toBe("12 uur geleden");
|
93 | expect(result.start.get("hour")).toBe(0);
|
94 | expect(result.start.get("minute")).toBe(14);
|
95 |
|
96 | expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
|
97 | });
|
98 |
|
99 |
|
100 | testSingleCase(chrono.nl, "12 seconden geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => {
|
101 | expect(result.index).toBe(0);
|
102 | expect(result.text).toBe("12 seconden geleden");
|
103 | expect(result.start.get("hour")).toBe(12);
|
104 | expect(result.start.get("minute")).toBe(13);
|
105 | expect(result.start.get("second")).toBe(48);
|
106 |
|
107 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 48));
|
108 | });
|
109 |
|
110 |
|
111 | testSingleCase(chrono.nl, "drie seconden geleden deed ik iets", new Date(2012, 7, 10, 12, 14), (result) => {
|
112 | expect(result.index).toBe(0);
|
113 | expect(result.text).toBe("drie seconden geleden");
|
114 | expect(result.start.get("hour")).toBe(12);
|
115 | expect(result.start.get("minute")).toBe(13);
|
116 | expect(result.start.get("second")).toBe(57);
|
117 |
|
118 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 57));
|
119 | });
|
120 |
|
121 |
|
122 | testSingleCase(chrono.nl, "5 dagen geleden, hebben we iets gedaan", new Date(2012, 7, 10), (result) => {
|
123 | expect(result.start).not.toBeNull();
|
124 | expect(result.start.get("year")).toBe(2012);
|
125 | expect(result.start.get("month")).toBe(8);
|
126 | expect(result.start.get("day")).toBe(5);
|
127 |
|
128 | expect(result.index).toBe(0);
|
129 | expect(result.text).toBe("5 dagen geleden");
|
130 |
|
131 | expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
|
132 | });
|
133 |
|
134 |
|
135 | testSingleCase(chrono.nl, "Een dag geleden, hebben we wat gedaan", new Date(2012, 7, 10), (result) => {
|
136 | expect(result.start).not.toBeNull();
|
137 | expect(result.start.get("year")).toBe(2012);
|
138 | expect(result.start.get("month")).toBe(8);
|
139 | expect(result.start.get("day")).toBe(9);
|
140 |
|
141 | expect(result.index).toBe(0);
|
142 | expect(result.text).toBe("Een dag geleden");
|
143 |
|
144 | expect(result.start).toBeDate(new Date(2012, 8 - 1, 9));
|
145 | });
|
146 |
|
147 |
|
148 | testSingleCase(chrono.nl, "een minuut geleden", new Date(2012, 7, 10, 12, 14), (result) => {
|
149 | expect(result.index).toBe(0);
|
150 | expect(result.text).toBe("een minuut geleden");
|
151 | expect(result.start.get("hour")).toBe(12);
|
152 | expect(result.start.get("minute")).toBe(13);
|
153 |
|
154 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13));
|
155 | });
|
156 | });
|
157 |
|
158 | test("Test - Single Expression (Casual)", function () {
|
159 |
|
160 | testSingleCase(chrono.nl, "5 maanden geleden, hebben we iets gedaan", new Date(2012, 10 - 1, 10), (result) => {
|
161 | expect(result.start).not.toBeNull();
|
162 | expect(result.start.get("year")).toBe(2012);
|
163 | expect(result.start.get("month")).toBe(5);
|
164 | expect(result.start.get("day")).toBe(10);
|
165 |
|
166 | expect(result.index).toBe(0);
|
167 | expect(result.text).toBe("5 maanden geleden");
|
168 |
|
169 | expect(result.start).toBeDate(new Date(2012, 5 - 1, 10));
|
170 | });
|
171 |
|
172 |
|
173 | testSingleCase(chrono.nl, "5 jaar geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 10), (result) => {
|
174 | expect(result.start).not.toBeNull();
|
175 | expect(result.start.get("year")).toBe(2007);
|
176 | expect(result.start.get("month")).toBe(8);
|
177 | expect(result.start.get("day")).toBe(10);
|
178 |
|
179 | expect(result.index).toBe(0);
|
180 | expect(result.text).toBe("5 jaar geleden");
|
181 |
|
182 | expect(result.start).toBeDate(new Date(2007, 8 - 1, 10));
|
183 | });
|
184 |
|
185 |
|
186 | testSingleCase(chrono.nl, "een week geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 3), (result) => {
|
187 | expect(result.start).not.toBeNull();
|
188 | expect(result.start.get("year")).toBe(2012);
|
189 | expect(result.start.get("month")).toBe(7);
|
190 | expect(result.start.get("day")).toBe(27);
|
191 |
|
192 | expect(result.index).toBe(0);
|
193 | expect(result.text).toBe("een week geleden");
|
194 |
|
195 | expect(result.start).toBeDate(new Date(2012, 7 - 1, 27));
|
196 | });
|
197 |
|
198 |
|
199 | testSingleCase(chrono.nl, "paar dagen geleden, hebben we iets gedaan", new Date(2012, 8 - 1, 2), (result) => {
|
200 | expect(result.start).not.toBeNull();
|
201 | expect(result.start.get("year")).toBe(2012);
|
202 | expect(result.start.get("month")).toBe(7);
|
203 | expect(result.start.get("day")).toBe(31);
|
204 |
|
205 | expect(result.index).toBe(0);
|
206 | expect(result.text).toBe("paar dagen geleden");
|
207 |
|
208 | expect(result.start).toBeDate(new Date(2012, 7 - 1, 31));
|
209 | });
|
210 | });
|
211 |
|
212 | test("Test - Nested time ago", function () {
|
213 |
|
214 | testSingleCase(chrono.nl, "15 uur 29 minuten geleden", new Date(2012, 7, 10, 22, 30), (result) => {
|
215 | expect(result.text).toBe("15 uur 29 minuten geleden");
|
216 | expect(result.start.get("day")).toBe(10);
|
217 | expect(result.start.get("hour")).toBe(7);
|
218 | expect(result.start.get("minute")).toBe(1);
|
219 | });
|
220 |
|
221 |
|
222 | testSingleCase(chrono.nl, "1 dag 21 uur geleden ", new Date(2012, 7, 10, 22, 30), (result) => {
|
223 | expect(result.text).toBe("1 dag 21 uur geleden");
|
224 | expect(result.start.get("day")).toBe(9);
|
225 | expect(result.start.get("hour")).toBe(1);
|
226 | expect(result.start.get("minute")).toBe(30);
|
227 | });
|
228 |
|
229 |
|
230 | testSingleCase(chrono.nl, "3 min 49 sec geleden ", new Date(2012, 7, 10, 22, 30), (result) => {
|
231 | expect(result.text).toBe("3 min 49 sec geleden");
|
232 | expect(result.start.get("day")).toBe(10);
|
233 | expect(result.start.get("hour")).toBe(22);
|
234 | expect(result.start.get("minute")).toBe(26);
|
235 | expect(result.start.get("second")).toBe(11);
|
236 | });
|
237 | });
|
238 |
|
239 | test("Test - Negative cases", function () {
|
240 | testUnexpectedResult(chrono, "15 uur 29 min");
|
241 | testUnexpectedResult(chrono, "een paar uur");
|
242 | testUnexpectedResult(chrono, "5 dagen");
|
243 | });
|