1 | import * as chrono from "../../src";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 | import { Meridiem } from "../../src";
|
4 |
|
5 | test("Test - Single Expression", function () {
|
6 | testSingleCase(chrono.fr, "8h10", new Date(2012, 7, 10), (result) => {
|
7 | expect(result.index).toBe(0);
|
8 | expect(result.text).toBe("8h10");
|
9 |
|
10 | expect(result.start.get("hour")).toBe(8);
|
11 | expect(result.start.get("minute")).toBe(10);
|
12 |
|
13 | expect(result.start.isCertain("day")).toBe(false);
|
14 | expect(result.start.isCertain("month")).toBe(false);
|
15 | expect(result.start.isCertain("year")).toBe(false);
|
16 | expect(result.start.isCertain("hour")).toBe(true);
|
17 | expect(result.start.isCertain("minute")).toBe(true);
|
18 | expect(result.start.isCertain("second")).toBe(false);
|
19 | expect(result.start.isCertain("millisecond")).toBe(false);
|
20 |
|
21 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
22 | });
|
23 |
|
24 | testSingleCase(chrono.fr, "8h10m", new Date(2012, 7, 10), (result) => {
|
25 | expect(result.index).toBe(0);
|
26 | expect(result.text).toBe("8h10m");
|
27 |
|
28 | expect(result.start.get("hour")).toBe(8);
|
29 | expect(result.start.get("minute")).toBe(10);
|
30 |
|
31 | expect(result.start.isCertain("day")).toBe(false);
|
32 | expect(result.start.isCertain("month")).toBe(false);
|
33 | expect(result.start.isCertain("year")).toBe(false);
|
34 | expect(result.start.isCertain("hour")).toBe(true);
|
35 | expect(result.start.isCertain("minute")).toBe(true);
|
36 | expect(result.start.isCertain("second")).toBe(false);
|
37 | expect(result.start.isCertain("millisecond")).toBe(false);
|
38 |
|
39 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
40 | });
|
41 |
|
42 | testSingleCase(chrono.fr, "8h10m00", new Date(2012, 7, 10), (result) => {
|
43 | expect(result.index).toBe(0);
|
44 | expect(result.text).toBe("8h10m00");
|
45 |
|
46 | expect(result.start.get("hour")).toBe(8);
|
47 | expect(result.start.get("minute")).toBe(10);
|
48 |
|
49 | expect(result.start.isCertain("day")).toBe(false);
|
50 | expect(result.start.isCertain("month")).toBe(false);
|
51 | expect(result.start.isCertain("year")).toBe(false);
|
52 | expect(result.start.isCertain("hour")).toBe(true);
|
53 | expect(result.start.isCertain("minute")).toBe(true);
|
54 | expect(result.start.isCertain("second")).toBe(true);
|
55 | expect(result.start.isCertain("millisecond")).toBe(false);
|
56 |
|
57 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
58 | });
|
59 |
|
60 | testSingleCase(chrono.fr, "8h10m00s", new Date(2012, 7, 10), (result) => {
|
61 | expect(result.index).toBe(0);
|
62 | expect(result.text).toBe("8h10m00s");
|
63 |
|
64 | expect(result.start.get("hour")).toBe(8);
|
65 | expect(result.start.get("minute")).toBe(10);
|
66 |
|
67 | expect(result.start.isCertain("day")).toBe(false);
|
68 | expect(result.start.isCertain("month")).toBe(false);
|
69 | expect(result.start.isCertain("year")).toBe(false);
|
70 | expect(result.start.isCertain("hour")).toBe(true);
|
71 | expect(result.start.isCertain("minute")).toBe(true);
|
72 | expect(result.start.isCertain("second")).toBe(true);
|
73 | expect(result.start.isCertain("millisecond")).toBe(false);
|
74 |
|
75 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
76 | });
|
77 |
|
78 | testSingleCase(chrono.fr, "8:10 PM", new Date(2012, 7, 10), (result) => {
|
79 | expect(result.index).toBe(0);
|
80 | expect(result.text).toBe("8:10 PM");
|
81 |
|
82 | expect(result.start.get("hour")).toBe(20);
|
83 | expect(result.start.get("minute")).toBe(10);
|
84 | expect(result.start.isCertain("second")).toBe(false);
|
85 | expect(result.start.isCertain("millisecond")).toBe(false);
|
86 |
|
87 | expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 10));
|
88 | });
|
89 |
|
90 | testSingleCase(chrono.fr, "8h10 PM", new Date(2012, 7, 10), (result) => {
|
91 | expect(result.index).toBe(0);
|
92 | expect(result.text).toBe("8h10 PM");
|
93 |
|
94 | expect(result.start.get("hour")).toBe(20);
|
95 | expect(result.start.get("minute")).toBe(10);
|
96 | expect(result.start.isCertain("second")).toBe(false);
|
97 | expect(result.start.isCertain("millisecond")).toBe(false);
|
98 |
|
99 | expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 10));
|
100 | });
|
101 |
|
102 | testSingleCase(chrono.fr, "1230pm", new Date(2012, 7, 10), (result) => {
|
103 | expect(result.index).toBe(0);
|
104 | expect(result.text).toBe("1230pm");
|
105 |
|
106 | expect(result.start.get("hour")).toBe(12);
|
107 | expect(result.start.get("minute")).toBe(30);
|
108 | expect(result.start.isCertain("second")).toBe(false);
|
109 | expect(result.start.isCertain("millisecond")).toBe(false);
|
110 |
|
111 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 30));
|
112 | });
|
113 |
|
114 | testSingleCase(chrono.fr, "5:16p", new Date(2012, 7, 10), (result) => {
|
115 | expect(result.index).toBe(0);
|
116 | expect(result.text).toBe("5:16p");
|
117 |
|
118 | expect(result.start.get("hour")).toBe(17);
|
119 | expect(result.start.get("minute")).toBe(16);
|
120 | expect(result.start.isCertain("second")).toBe(false);
|
121 | expect(result.start.isCertain("millisecond")).toBe(false);
|
122 |
|
123 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
|
124 | });
|
125 |
|
126 | testSingleCase(chrono.fr, "5h16p", new Date(2012, 7, 10), (result) => {
|
127 | expect(result.index).toBe(0);
|
128 | expect(result.text).toBe("5h16p");
|
129 |
|
130 | expect(result.start.get("hour")).toBe(17);
|
131 | expect(result.start.get("minute")).toBe(16);
|
132 | expect(result.start.isCertain("second")).toBe(false);
|
133 | expect(result.start.isCertain("millisecond")).toBe(false);
|
134 |
|
135 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
|
136 | });
|
137 |
|
138 | testSingleCase(chrono.fr, "5h16mp", new Date(2012, 7, 10), (result) => {
|
139 | expect(result.index).toBe(0);
|
140 | expect(result.text).toBe("5h16mp");
|
141 |
|
142 | expect(result.start.get("hour")).toBe(17);
|
143 | expect(result.start.get("minute")).toBe(16);
|
144 | expect(result.start.isCertain("second")).toBe(false);
|
145 | expect(result.start.isCertain("millisecond")).toBe(false);
|
146 |
|
147 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
|
148 | });
|
149 |
|
150 | testSingleCase(chrono.fr, "5:16 p.m.", new Date(2012, 7, 10), (result) => {
|
151 | expect(result.index).toBe(0);
|
152 | expect(result.text).toBe("5:16 p.m.");
|
153 |
|
154 | expect(result.start.get("hour")).toBe(17);
|
155 | expect(result.start.get("minute")).toBe(16);
|
156 | expect(result.start.isCertain("second")).toBe(false);
|
157 | expect(result.start.isCertain("millisecond")).toBe(false);
|
158 |
|
159 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
|
160 | });
|
161 |
|
162 | testSingleCase(chrono.fr, "5h16 p.m.", new Date(2012, 7, 10), (result) => {
|
163 | expect(result.index).toBe(0);
|
164 | expect(result.text).toBe("5h16 p.m.");
|
165 |
|
166 | expect(result.start.get("hour")).toBe(17);
|
167 | expect(result.start.get("minute")).toBe(16);
|
168 | expect(result.start.isCertain("second")).toBe(false);
|
169 | expect(result.start.isCertain("millisecond")).toBe(false);
|
170 |
|
171 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
|
172 | });
|
173 |
|
174 | testSingleCase(chrono.fr, "RDV à 6.13 AM", new Date(2012, 7, 10), (result) => {
|
175 | expect(result.index).toBe(4);
|
176 | expect(result.text).toBe("à 6.13 AM");
|
177 |
|
178 | expect(result.start.get("hour")).toBe(6);
|
179 | expect(result.start.get("minute")).toBe(13);
|
180 |
|
181 | expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 13));
|
182 | });
|
183 |
|
184 | testSingleCase(chrono.fr, "13h-15h", new Date(2012, 7, 10), (result) => {
|
185 | expect(result.index).toBe(0);
|
186 | expect(result.text).toBe("13h-15h");
|
187 |
|
188 | expect(result.start.get("hour")).toBe(13);
|
189 | expect(result.start.get("minute")).toBe(0);
|
190 | expect(result.start.get("meridiem")).toBe(1);
|
191 |
|
192 | expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 0));
|
193 |
|
194 | expect(result.end).not.toBeNull();
|
195 | expect(result.end.get("hour")).toBe(15);
|
196 | expect(result.end.get("minute")).toBe(0);
|
197 | expect(result.end.get("meridiem")).toBe(1);
|
198 |
|
199 | expect(result.end).toBeDate(new Date(2012, 7, 10, 15, 0));
|
200 | });
|
201 |
|
202 | testSingleCase(chrono.fr, "13-15h", new Date(2012, 7, 10), (result) => {
|
203 | expect(result.index).toBe(0);
|
204 | expect(result.text).toBe("13-15h");
|
205 |
|
206 | expect(result.start.get("hour")).toBe(13);
|
207 | expect(result.start.get("minute")).toBe(0);
|
208 | expect(result.start.get("meridiem")).toBe(1);
|
209 |
|
210 | expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 0));
|
211 |
|
212 | expect(result.end).not.toBeNull();
|
213 | expect(result.end.get("hour")).toBe(15);
|
214 | expect(result.end.get("minute")).toBe(0);
|
215 | expect(result.end.get("meridiem")).toBe(1);
|
216 |
|
217 | expect(result.end).toBeDate(new Date(2012, 7, 10, 15, 0));
|
218 | });
|
219 |
|
220 | testSingleCase(chrono.fr, "1-3pm", new Date(2012, 7, 10), (result) => {
|
221 | expect(result.index).toBe(0);
|
222 | expect(result.text).toBe("1-3pm");
|
223 |
|
224 | expect(result.start.get("hour")).toBe(13);
|
225 | expect(result.start.get("minute")).toBe(0);
|
226 | expect(result.start.get("meridiem")).toBe(1);
|
227 |
|
228 | expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 0));
|
229 |
|
230 | expect(result.end).not.toBeNull();
|
231 | expect(result.end.get("hour")).toBe(15);
|
232 | expect(result.end.get("minute")).toBe(0);
|
233 | expect(result.end.get("meridiem")).toBe(1);
|
234 |
|
235 | expect(result.end).toBeDate(new Date(2012, 7, 10, 15, 0));
|
236 | });
|
237 |
|
238 | testSingleCase(chrono.fr, "11pm-2", new Date(2012, 7, 10), (result) => {
|
239 | expect(result.index).toBe(0);
|
240 | expect(result.text).toBe("11pm-2");
|
241 |
|
242 | expect(result.start.get("hour")).toBe(23);
|
243 | expect(result.start.get("minute")).toBe(0);
|
244 | expect(result.start.get("meridiem")).toBe(1);
|
245 |
|
246 | expect(result.start).toBeDate(new Date(2012, 7, 10, 23, 0));
|
247 |
|
248 | expect(result.end).not.toBeNull();
|
249 | expect(result.end.get("hour")).toBe(2);
|
250 | expect(result.end.get("minute")).toBe(0);
|
251 | expect(result.end.get("meridiem")).toBe(0);
|
252 |
|
253 | expect(result.end).toBeDate(new Date(2012, 7, 11, 2, 0));
|
254 | });
|
255 | });
|
256 |
|
257 | test("Test - Range Expression", function () {
|
258 | testSingleCase(chrono.fr, "8:10 - 12.32", new Date(2012, 7, 10), (result) => {
|
259 | expect(result.index).toBe(0);
|
260 | expect(result.text).toBe("8:10 - 12.32");
|
261 |
|
262 | expect(result.start.get("hour")).toBe(8);
|
263 | expect(result.start.get("minute")).toBe(10);
|
264 |
|
265 | expect(result.start.isCertain("day")).toBe(false);
|
266 | expect(result.start.isCertain("month")).toBe(false);
|
267 | expect(result.start.isCertain("year")).toBe(false);
|
268 | expect(result.start.isCertain("hour")).toBe(true);
|
269 | expect(result.start.isCertain("minute")).toBe(true);
|
270 | expect(result.start.isCertain("second")).toBe(false);
|
271 | expect(result.start.isCertain("millisecond")).toBe(false);
|
272 |
|
273 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
274 |
|
275 | expect(result.end).not.toBeNull();
|
276 | expect(result.end.get("hour")).toBe(12);
|
277 | expect(result.end.get("minute")).toBe(32);
|
278 |
|
279 | expect(result.end.isCertain("day")).toBe(false);
|
280 | expect(result.end.isCertain("month")).toBe(false);
|
281 | expect(result.end.isCertain("year")).toBe(false);
|
282 | expect(result.end.isCertain("hour")).toBe(true);
|
283 | expect(result.end.isCertain("minute")).toBe(true);
|
284 | expect(result.end.isCertain("second")).toBe(false);
|
285 | expect(result.end.isCertain("millisecond")).toBe(false);
|
286 |
|
287 | expect(result.end).toBeDate(new Date(2012, 7, 10, 12, 32));
|
288 | });
|
289 |
|
290 | testSingleCase(chrono.fr, "8:10 - 12h32", new Date(2012, 7, 10), (result) => {
|
291 | expect(result.index).toBe(0);
|
292 | expect(result.text).toBe("8:10 - 12h32");
|
293 |
|
294 | expect(result.start.get("hour")).toBe(8);
|
295 | expect(result.start.get("minute")).toBe(10);
|
296 |
|
297 | expect(result.start.isCertain("day")).toBe(false);
|
298 | expect(result.start.isCertain("month")).toBe(false);
|
299 | expect(result.start.isCertain("year")).toBe(false);
|
300 | expect(result.start.isCertain("hour")).toBe(true);
|
301 | expect(result.start.isCertain("minute")).toBe(true);
|
302 | expect(result.start.isCertain("second")).toBe(false);
|
303 | expect(result.start.isCertain("millisecond")).toBe(false);
|
304 |
|
305 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
|
306 |
|
307 | expect(result.end).not.toBeNull();
|
308 | expect(result.end.get("hour")).toBe(12);
|
309 | expect(result.end.get("minute")).toBe(32);
|
310 |
|
311 | expect(result.end.isCertain("day")).toBe(false);
|
312 | expect(result.end.isCertain("month")).toBe(false);
|
313 | expect(result.end.isCertain("year")).toBe(false);
|
314 | expect(result.end.isCertain("hour")).toBe(true);
|
315 | expect(result.end.isCertain("minute")).toBe(true);
|
316 | expect(result.end.isCertain("second")).toBe(false);
|
317 | expect(result.end.isCertain("millisecond")).toBe(false);
|
318 |
|
319 | expect(result.end).toBeDate(new Date(2012, 7, 10, 12, 32));
|
320 | });
|
321 |
|
322 | testSingleCase(chrono.fr, " de 6:30pm à 11:00pm ", new Date(2012, 7, 10), (result) => {
|
323 | expect(result.start.get("hour")).toBe(18);
|
324 | expect(result.start.get("minute")).toBe(30);
|
325 | expect(result.start.get("meridiem")).toBe(1);
|
326 |
|
327 | expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 30));
|
328 |
|
329 | expect(result.end).not.toBeNull();
|
330 | expect(result.end.get("hour")).toBe(23);
|
331 | expect(result.end.get("minute")).toBe(0);
|
332 | expect(result.end.get("meridiem")).toBe(1);
|
333 |
|
334 | expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
|
335 | });
|
336 |
|
337 | testSingleCase(chrono.fr, " 2012 à 10:12:59", new Date(2012, 7, 10), (result) => {
|
338 | expect(result.index).toBe(6);
|
339 | expect(result.text).toBe("à 10:12:59");
|
340 |
|
341 | expect(result.start.get("hour")).toBe(10);
|
342 | expect(result.start.get("minute")).toBe(12);
|
343 | expect(result.start.get("second")).toBe(59);
|
344 | expect(result.start.get("meridiem")).toBe(Meridiem.AM);
|
345 |
|
346 | expect(result.end).toBeNull();
|
347 | });
|
348 | });
|
349 |
|
350 | test("Test - Impossible", function () {
|
351 | testUnexpectedResult(chrono.fr, "8:62", new Date(2012, 7, 10));
|
352 |
|
353 | testUnexpectedResult(chrono.fr, "25:12", new Date(2012, 7, 10));
|
354 |
|
355 | testUnexpectedResult(chrono.fr, "12h12:99s", new Date(2012, 7, 10));
|
356 |
|
357 | testUnexpectedResult(chrono.fr, "13.12 PM", new Date(2012, 7, 10));
|
358 | });
|
359 |
|
360 | test("Test - Date + Time Expression", function () {
|
361 | testSingleCase(chrono.fr, "Quelque chose se passe le 2014-04-18 à 3h00", new Date(2012, 7, 10), (result) => {
|
362 | expect(result.index).toBe(26);
|
363 | expect(result.text).toBe("2014-04-18 à 3h00");
|
364 |
|
365 | expect(result.start.get("year")).toBe(2014);
|
366 | expect(result.start.get("month")).toBe(4);
|
367 | expect(result.start.get("day")).toBe(18);
|
368 | expect(result.start.get("hour")).toBe(3);
|
369 | expect(result.start.get("minute")).toBe(0);
|
370 | expect(result.start.get("second")).toBe(0);
|
371 | expect(result.start.get("millisecond")).toBe(0);
|
372 | expect(result.start.isCertain("millisecond")).toBe(false);
|
373 |
|
374 | expect(result.start).toBeDate(new Date(2014, 4 - 1, 18, 3, 0));
|
375 | });
|
376 |
|
377 | testSingleCase(chrono.fr, "Quelque chose se passe le 10 Août 2012 à 10:12:59", new Date(2012, 7, 10), (result) => {
|
378 | expect(result.index).toBe(26);
|
379 | expect(result.text).toBe("10 Août 2012 à 10:12:59");
|
380 |
|
381 | expect(result.start.get("year")).toBe(2012);
|
382 | expect(result.start.get("month")).toBe(8);
|
383 | expect(result.start.get("day")).toBe(10);
|
384 | expect(result.start.get("hour")).toBe(10);
|
385 | expect(result.start.get("minute")).toBe(12);
|
386 | expect(result.start.get("second")).toBe(59);
|
387 | expect(result.start.get("millisecond")).toBe(0);
|
388 | expect(result.start.isCertain("millisecond")).toBe(false);
|
389 |
|
390 | expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 10, 12, 59));
|
391 | });
|
392 |
|
393 | testSingleCase(chrono.fr, "Quelque chose se passe le 15juin 2016 20h", new Date(2016, 6, 10), (result) => {
|
394 | expect(result.index).toBe(26);
|
395 | expect(result.text).toBe("15juin 2016 20h");
|
396 |
|
397 | expect(result.start.get("year")).toBe(2016);
|
398 | expect(result.start.get("month")).toBe(6);
|
399 | expect(result.start.get("day")).toBe(15);
|
400 | expect(result.start.get("hour")).toBe(20);
|
401 | expect(result.start.get("minute")).toBe(0);
|
402 | expect(result.start.get("second")).toBe(0);
|
403 | expect(result.start.get("millisecond")).toBe(0);
|
404 | expect(result.start.isCertain("millisecond")).toBe(false);
|
405 |
|
406 | expect(result.start).toBeDate(new Date(2016, 6 - 1, 15, 20, 0, 0));
|
407 | });
|
408 |
|
409 | testSingleCase(
|
410 | chrono.fr,
|
411 | "Quelque chose se passe le 2014-04-18 7:00 - 8h00 ...",
|
412 | new Date(2012, 7, 10),
|
413 | (result) => {
|
414 | expect(result.index).toBe(26);
|
415 | expect(result.text).toBe("2014-04-18 7:00 - 8h00");
|
416 |
|
417 | expect(result.start.get("year")).toBe(2014);
|
418 | expect(result.start.get("month")).toBe(4);
|
419 | expect(result.start.get("day")).toBe(18);
|
420 | expect(result.start.get("hour")).toBe(7);
|
421 | expect(result.start.get("minute")).toBe(0);
|
422 | expect(result.start.get("second")).toBe(0);
|
423 | expect(result.start.get("millisecond")).toBe(0);
|
424 | expect(result.start.isCertain("meridiem")).toBe(false);
|
425 | expect(result.start.isCertain("millisecond")).toBe(false);
|
426 |
|
427 | expect(result.start).toBeDate(new Date(2014, 4 - 1, 18, 7, 0));
|
428 |
|
429 | expect(result.end.get("year")).toBe(2014);
|
430 | expect(result.end.get("month")).toBe(4);
|
431 | expect(result.end.get("day")).toBe(18);
|
432 | expect(result.end.get("hour")).toBe(8);
|
433 | expect(result.end.get("minute")).toBe(0);
|
434 | expect(result.end.get("second")).toBe(0);
|
435 | expect(result.end.get("millisecond")).toBe(0);
|
436 | expect(result.end.isCertain("meridiem")).toBe(false);
|
437 | expect(result.end.isCertain("millisecond")).toBe(false);
|
438 |
|
439 | expect(result.end).toBeDate(new Date(2014, 4 - 1, 18, 8, 0));
|
440 | }
|
441 | );
|
442 |
|
443 | testSingleCase(
|
444 | chrono.fr,
|
445 | "Quelque chose se passe le 2014-04-18 de 7:00 à 20:00 ...",
|
446 | new Date(2012, 7, 10),
|
447 | (result) => {
|
448 | expect(result.index).toBe(26);
|
449 | expect(result.text).toBe("2014-04-18 de 7:00 à 20:00");
|
450 |
|
451 | expect(result.start.get("year")).toBe(2014);
|
452 | expect(result.start.get("month")).toBe(4);
|
453 | expect(result.start.get("day")).toBe(18);
|
454 | expect(result.start.get("hour")).toBe(7);
|
455 | expect(result.start.get("minute")).toBe(0);
|
456 | expect(result.start.get("second")).toBe(0);
|
457 | expect(result.start.get("millisecond")).toBe(0);
|
458 | expect(result.start.isCertain("meridiem")).toBe(false);
|
459 | expect(result.start.isCertain("millisecond")).toBe(false);
|
460 |
|
461 | expect(result.start).toBeDate(new Date(2014, 4 - 1, 18, 7, 0));
|
462 |
|
463 | expect(result.end.get("year")).toBe(2014);
|
464 | expect(result.end.get("month")).toBe(4);
|
465 | expect(result.end.get("day")).toBe(18);
|
466 | expect(result.end.get("hour")).toBe(20);
|
467 | expect(result.end.get("minute")).toBe(0);
|
468 | expect(result.end.get("second")).toBe(0);
|
469 | expect(result.end.get("millisecond")).toBe(0);
|
470 | expect(result.start.isCertain("meridiem")).toBe(false);
|
471 | expect(result.end.isCertain("millisecond")).toBe(false);
|
472 |
|
473 | expect(result.end).toBeDate(new Date(2014, 4 - 1, 18, 20, 0));
|
474 | }
|
475 | );
|
476 | });
|
477 |
|
478 | test("Test - Timezone extraction", function () {
|
479 | testSingleCase(chrono.fr, "Vendredi à 2 pm", new Date(2016, 3, 28), (result, text) => {
|
480 | expect(result.text).toBe(text);
|
481 | expect(result.start.isCertain("timezoneOffset")).toBe(false);
|
482 | expect(!result.start.get("timezoneOffset")).not.toBeNull();
|
483 | });
|
484 |
|
485 | testSingleCase(chrono.fr, "vendredi 2 pm EST", new Date(2016, 3, 28), (result, text) => {
|
486 | expect(result.text).toBe(text);
|
487 | expect(result.start.isCertain("timezoneOffset")).toBe(true);
|
488 | expect(result.start.get("timezoneOffset")).toBe(-300);
|
489 | });
|
490 |
|
491 | testSingleCase(chrono.fr, "vendredi 15h CET", new Date(2016, 1, 28), (result, text) => {
|
492 | expect(result.text).toBe(text);
|
493 | expect(result.start.isCertain("timezoneOffset")).toBe(true);
|
494 | expect(result.start.get("timezoneOffset")).toBe(60);
|
495 | });
|
496 |
|
497 | testSingleCase(chrono.fr, "vendredi 15h cest", new Date(2016, 1, 28), (result, text) => {
|
498 | expect(result.text).toBe(text);
|
499 | expect(result.start.isCertain("timezoneOffset")).toBe(true);
|
500 | expect(result.start.get("timezoneOffset")).toBe(120);
|
501 | });
|
502 |
|
503 | testSingleCase(chrono.fr, "Vendredi à 2 pm est", new Date(2016, 3, 28), (result, text) => {
|
504 | expect(result.text).toBe(text);
|
505 | expect(result.start.isCertain("timezoneOffset")).toBe(true);
|
506 | expect(result.start.get("timezoneOffset")).toBe(-300);
|
507 | });
|
508 |
|
509 | testSingleCase(chrono.fr, "Vendredi à 2 pm j'ai rdv...", new Date(2016, 3, 28), (result, text) => {
|
510 | expect(result.text).toBe("Vendredi à 2 pm");
|
511 | expect(result.start.isCertain("timezoneOffset")).toBe(false);
|
512 | expect(!result.start.get("timezoneOffset")).not.toBeNull();
|
513 | });
|
514 |
|
515 | testSingleCase(chrono.fr, "Vendredi à 2 pm je vais faire quelque chose", new Date(2016, 3, 28), (result, text) => {
|
516 | expect(result.text).toBe("Vendredi à 2 pm");
|
517 | expect(result.start.isCertain("timezoneOffset")).toBe(false);
|
518 | expect(!result.start.get("timezoneOffset")).not.toBeNull();
|
519 | });
|
520 | });
|
521 |
|
522 | test("Test - Random date + time expression", function () {
|
523 | testSingleCase(chrono.fr, "lundi 29/4/2013 630-930am", (result, text) => {
|
524 | expect(result.text).toBe(text);
|
525 | });
|
526 |
|
527 | testSingleCase(chrono.fr, "mercredi 1/5/2013 1115am", (result, text) => {
|
528 | expect(result.text).toBe(text);
|
529 | });
|
530 |
|
531 | testSingleCase(chrono.fr, "vendredi 3/5/2013 1230pm", (result, text) => {
|
532 | expect(result.text).toBe(text);
|
533 | });
|
534 |
|
535 | testSingleCase(chrono.fr, "dimanche 6/5/2013 750am-910am", (result, text) => {
|
536 | expect(result.text).toBe(text);
|
537 | });
|
538 |
|
539 | testSingleCase(chrono.fr, "lundi 13/5/2013 630-930am", (result, text) => {
|
540 | expect(result.text).toBe(text);
|
541 | });
|
542 |
|
543 | testSingleCase(chrono.fr, "Vendredi 21/6/2013 2:30", (result, text) => {
|
544 | expect(result.text).toBe(text);
|
545 | });
|
546 |
|
547 | testSingleCase(chrono.fr, "mardi 7/2/2013 1-230 pm", (result, text) => {
|
548 | expect(result.text).toBe(text);
|
549 | });
|
550 |
|
551 | testSingleCase(chrono.fr, "mardi 7/2/2013 1-23h0", (result, text) => {
|
552 | expect(result.text).toBe(text);
|
553 | });
|
554 |
|
555 | testSingleCase(chrono.fr, "mardi 7/2/2013 1h-23h0m", (result, text) => {
|
556 | expect(result.text).toBe(text);
|
557 | });
|
558 |
|
559 | testSingleCase(chrono.fr, "Lundi, 24/6/2013, 7:00pm - 8:30pm", (result, text) => {
|
560 | expect(result.text).toBe(text);
|
561 | });
|
562 |
|
563 | testSingleCase(chrono.fr, "Jeudi6/5/2013 de 7h à 10h", (result, text) => {
|
564 | expect(result.text).toBe(text);
|
565 | });
|
566 |
|
567 | testSingleCase(chrono.fr, "18h", (result, text) => {
|
568 | expect(result.text).toBe(text);
|
569 | });
|
570 |
|
571 | testSingleCase(chrono.fr, "18-22h", (result, text) => {
|
572 | expect(result.text).toBe(text);
|
573 | });
|
574 |
|
575 | testSingleCase(chrono.fr, "11h-13", (result, text) => {
|
576 | expect(result.text).toBe(text);
|
577 | });
|
578 |
|
579 | testSingleCase(chrono.fr, "à 12h", (result, text) => {
|
580 | expect(result.text).toBe(text);
|
581 | });
|
582 |
|
583 | testSingleCase(chrono.fr, "Mercredi, 3 juil 2013 14h", (result, text) => {
|
584 | expect(result.text).toBe(text);
|
585 | });
|
586 |
|
587 | testUnexpectedResult(chrono.fr, "that I need to know or am I covered?");
|
588 | });
|