chrono-node 1.4.7 → 1.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/chrono.js +711 -809
  2. package/dist/chrono.js.map +1 -1
  3. package/dist/chrono.min.js +1 -1
  4. package/dist/chrono.min.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/chrono.js +57 -59
  7. package/src/options.js +30 -29
  8. package/src/parsers/en/ENDeadlineFormatParser.js +9 -9
  9. package/src/result.js +119 -119
  10. package/test/de/de.test.js +36 -51
  11. package/test/de/de_casual.test.js +242 -141
  12. package/test/de/de_dash.test.js +5 -8
  13. package/test/de/de_deadline.test.js +151 -47
  14. package/test/de/de_little_endian.test.js +207 -58
  15. package/test/de/de_time_ago.test.js +167 -52
  16. package/test/de/de_time_exp.test.js +135 -121
  17. package/test/de/de_weekday.test.js +94 -31
  18. package/test/en/en.test.js +118 -89
  19. package/test/en/en_casual.test.js +149 -134
  20. package/test/en/en_dash.test.js +17 -11
  21. package/test/en/en_deadline.test.js +93 -69
  22. package/test/en/en_inter_std.test.js +28 -7
  23. package/test/en/en_little_endian.test.js +76 -26
  24. package/test/en/en_middle_endian.test.js +63 -21
  25. package/test/en/en_month.test.js +6 -2
  26. package/test/en/en_option_forward.test.js +120 -112
  27. package/test/en/en_relative.test.js +155 -172
  28. package/test/en/en_slash.test.js +156 -115
  29. package/test/en/en_time_ago.test.js +61 -21
  30. package/test/en/en_time_exp.test.js +228 -209
  31. package/test/en/en_time_from_now.test.js +70 -24
  32. package/test/en/en_time_later.test.js +16 -6
  33. package/test/en/en_weekday.test.js +39 -13
  34. package/test/es/es_casual.test.js +143 -120
  35. package/test/es/es_dash.test.js +7 -8
  36. package/test/es/es_deadline.test.js +69 -35
  37. package/test/es/es_little_endian.test.js +250 -145
  38. package/test/es/es_slash.test.js +17 -12
  39. package/test/es/es_time_ago.test.js +21 -7
  40. package/test/es/es_time_exp.test.js +154 -160
  41. package/test/fr/fr_casual.test.js +153 -124
  42. package/test/fr/fr_dash.test.js +13 -6
  43. package/test/fr/fr_deadline.test.js +163 -44
  44. package/test/fr/fr_little_endian.test.js +262 -81
  45. package/test/fr/fr_relative.test.js +188 -196
  46. package/test/fr/fr_slash.test.js +41 -14
  47. package/test/fr/fr_time_ago.test.js +30 -10
  48. package/test/fr/fr_time_exp.test.js +619 -567
  49. package/test/fr/fr_weekday.test.js +24 -8
  50. package/test/ja/ja_casual.test.js +41 -26
  51. package/test/ja/ja_standard.test.js +322 -207
  52. package/test/nl/nl.test.js +18 -20
  53. package/test/nl/nl_dash.test.js +26 -26
  54. package/test/nl/nl_little_endian.test.js +100 -51
  55. package/test/nl/nl_time_exp.test.js +37 -13
  56. package/test/nl/nl_weekday.test.js +39 -13
  57. package/test/pt/pt_casual.test.js +222 -156
  58. package/test/pt/pt_dash.test.js +7 -6
  59. package/test/pt/pt_deadline.test.js +51 -17
  60. package/test/pt/pt_little_endian.test.js +251 -144
  61. package/test/pt/pt_slash.test.js +38 -25
  62. package/test/pt/pt_time_ago.test.js +128 -80
  63. package/test/pt/pt_time_exp.test.js +191 -173
  64. package/test/test_util.js +1 -5
  65. package/test/zh/zh_hant_casual.test.js +184 -87
  66. package/test/zh/zh_hant_date.test.js +109 -75
  67. package/test/zh/zh_hant_deadline.test.js +131 -41
  68. package/test/zh/zh_hant_time_exp.test.js +184 -141
  69. package/test/zh/zh_hant_weekday.test.js +64 -22
@@ -1,5 +1,5 @@
1
1
  import * as chrono from '../../src/chrono';
2
- import { testSingleCase, testUnexpectedResult } from '../test_util';
2
+ import { testSingleCase } from '../test_util';
3
3
 
4
4
  test("Test - Single Expression", function() {
5
5
 
@@ -21,7 +21,9 @@ test("Test - Single Expression", function() {
21
21
  expect(result.start.isCertain('second')).toBe(false);
22
22
  expect(result.start.isCertain('millisecond')).toBe(false);
23
23
 
24
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
24
+ var resultDate = result.start.date();
25
+ var expectDate = new Date(2012, 7, 10, 8, 10);
26
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
25
27
  });
26
28
 
27
29
  testSingleCase(chrono, '8:10 PM', new Date(2012,7,10), (result) => {
@@ -35,7 +37,9 @@ test("Test - Single Expression", function() {
35
37
  expect(result.start.isCertain('millisecond')).toBe(false);
36
38
 
37
39
 
38
- expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 10));
40
+ var resultDate = result.start.date();
41
+ var expectDate = new Date(2012, 7, 10, 20, 10);
42
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
39
43
  });
40
44
 
41
45
  testSingleCase(chrono, '1230pm', new Date(2012,7,10), (result) => {
@@ -49,9 +53,11 @@ test("Test - Single Expression", function() {
49
53
  expect(result.start.isCertain('millisecond')).toBe(false);
50
54
 
51
55
 
52
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 30));
56
+ var resultDate = result.start.date();
57
+ var expectDate = new Date(2012, 7, 10, 12, 30);
58
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
53
59
  });
54
-
60
+
55
61
  testSingleCase(chrono, '5:16p', new Date(2012,7,10), (result) => {
56
62
  expect(result.index).toBe(0);
57
63
  expect(result.text).toBe('5:16p');
@@ -63,7 +69,9 @@ test("Test - Single Expression", function() {
63
69
  expect(result.start.isCertain('millisecond')).toBe(false);
64
70
 
65
71
 
66
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
72
+ var resultDate = result.start.date();
73
+ var expectDate = new Date(2012, 7, 10, 17, 16);
74
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
67
75
  });
68
76
 
69
77
  testSingleCase(chrono, '5:16 p.m.', new Date(2012,7,10), (result) => {
@@ -77,7 +85,9 @@ test("Test - Single Expression", function() {
77
85
  expect(result.start.isCertain('millisecond')).toBe(false);
78
86
 
79
87
 
80
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 16));
88
+ var resultDate = result.start.date();
89
+ var expectDate = new Date(2012, 7, 10, 17, 16);
90
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
81
91
  });
82
92
 
83
93
  testSingleCase(chrono, 'Lets meet at 6.13 AM', new Date(2012,7,10), (result) => {
@@ -88,7 +98,9 @@ test("Test - Single Expression", function() {
88
98
  expect(result.start.get('hour')).toBe(6);
89
99
  expect(result.start.get('minute')).toBe(13);
90
100
 
91
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 13));
101
+ var resultDate = result.start.date();
102
+ var expectDate = new Date(2012, 7, 10, 6, 13);
103
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
92
104
  });
93
105
 
94
106
 
@@ -101,14 +113,18 @@ test("Test - Single Expression", function() {
101
113
  expect(result.start.get('minute')).toBe(0);
102
114
  expect(result.start.get('meridiem')).toBe(1);
103
115
 
104
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 0));
116
+ var resultDate = result.start.date();
117
+ var expectDate = new Date(2012, 7, 10, 13, 0);
118
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
105
119
 
106
120
  expect(result.end).not.toBeNull();
107
121
  expect(result.end.get('hour')).toBe(15);
108
122
  expect(result.end.get('minute')).toBe(0);
109
123
  expect(result.end.get('meridiem')).toBe(1);
110
124
 
111
- expect(result.end).toBeDate(new Date(2012, 7, 10, 15, 0));
125
+ var resultDate = result.end.date();
126
+ var expectDate = new Date(2012, 7, 10, 15, 0);
127
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
112
128
  });
113
129
 
114
130
 
@@ -121,14 +137,18 @@ test("Test - Single Expression", function() {
121
137
  expect(result.start.get('minute')).toBe(0);
122
138
  expect(result.start.get('meridiem')).toBe(1);
123
139
 
124
- expect(result.start).toBeDate(new Date(2012, 7, 10, 23, 0));
140
+ var resultDate = result.start.date();
141
+ var expectDate = new Date(2012, 7, 10, 23, 0);
142
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
125
143
 
126
144
  expect(result.end).not.toBeNull();
127
145
  expect(result.end.get('hour')).toBe(2);
128
146
  expect(result.end.get('minute')).toBe(0);
129
147
  expect(result.end.get('meridiem')).toBe(0);
130
148
 
131
- expect(result.end).toBeDate(new Date(2012, 7, 11, 2, 0));
149
+ var resultDate = result.end.date();
150
+ var expectDate = new Date(2012, 7, 11, 2, 0);
151
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
132
152
  });
133
153
  });
134
154
 
@@ -150,7 +170,9 @@ test("Test - Range Expression", function() {
150
170
  expect(result.start.isCertain('second')).toBe(false);
151
171
  expect(result.start.isCertain('millisecond')).toBe(false);
152
172
 
153
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
173
+ var resultDate = result.start.date();
174
+ var expectDate = new Date(2012, 7, 10, 8, 10);
175
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
154
176
 
155
177
  expect(result.end).not.toBeNull();
156
178
  expect(result.end.get('hour')).toBe(12);
@@ -164,7 +186,9 @@ test("Test - Range Expression", function() {
164
186
  expect(result.end.isCertain('second')).toBe(false);
165
187
  expect(result.end.isCertain('millisecond')).toBe(false);
166
188
 
167
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12, 32));
189
+ var resultDate = result.end.date();
190
+ var expectDate = new Date(2012, 7, 10, 12, 32);
191
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
168
192
  });
169
193
 
170
194
  testSingleCase(chrono, ' from 6:30pm to 11:00pm ', new Date(2012,7,10), (result) => {
@@ -176,25 +200,35 @@ test("Test - Range Expression", function() {
176
200
  expect(result.start.get('minute')).toBe(30);
177
201
  expect(result.start.get('meridiem')).toBe(1);
178
202
 
179
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 30));
203
+ var resultDate = result.start.date();
204
+ var expectDate = new Date(2012, 7, 10, 18, 30);
205
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
180
206
 
181
207
  expect(result.end).not.toBeNull();
182
208
  expect(result.end.get('hour')).toBe(23);
183
209
  expect(result.end.get('minute')).toBe(0);
184
210
  expect(result.end.get('meridiem')).toBe(1);
185
211
 
186
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
212
+ var resultDate = result.end.date();
213
+ var expectDate = new Date(2012, 7, 10, 23, 0);
214
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
187
215
  });
188
216
 
189
217
  });
190
218
 
191
219
  test("Test - Impossible", function() {
192
220
 
193
- testUnexpectedResult(chrono, '8:62', new Date(2012,7,10));
221
+ var text = "8:62";
222
+ var results = chrono.parse(text, new Date(2012,7,10));
223
+ expect(results.length).toBe(0);
194
224
 
195
- testUnexpectedResult(chrono, '25:12', new Date(2012,7,10));
225
+ var text = "25:12";
226
+ var results = chrono.parse(text, new Date(2012,7,10));
227
+ expect(results.length).toBe(0);
196
228
 
197
- testUnexpectedResult(chrono, '13.12 PM', new Date(2012,7,10))
229
+ var text = "13.12 PM";
230
+ var results = chrono.parse(text, new Date(2012,7,10));
231
+ expect(results.length).toBe(0)
198
232
  });
199
233
 
200
234
  test("Test - Date + Time Expression", function() {
@@ -212,7 +246,9 @@ test("Test - Date + Time Expression", function() {
212
246
  expect(result.start.get('millisecond')).toBe(0);
213
247
  expect(result.start.isCertain('millisecond')).toBe(false);
214
248
 
215
- expect(result.start).toBeDate(new Date(2014, 4-1, 18, 3, 0));
249
+ var resultDate = result.start.date();
250
+ var expectDate = new Date(2014, 4-1, 18, 3, 0);
251
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
216
252
  });
217
253
 
218
254
  testSingleCase(chrono, 'Something happen on August 10, 2012 10:12:59 pm', new Date(2012,7,10), (result) => {
@@ -228,7 +264,9 @@ test("Test - Date + Time Expression", function() {
228
264
  expect(result.start.get('millisecond')).toBe(0);
229
265
  expect(result.start.isCertain('millisecond')).toBe(false);
230
266
 
231
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 22, 12, 59));
267
+ var resultDate = result.start.date();
268
+ var expectDate = new Date(2012, 8-1, 10, 22, 12, 59);
269
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
232
270
  });
233
271
 
234
272
  testSingleCase(chrono, 'Something happen on 2014-04-18 7:00 - 8:00 AM...', new Date(2012,7,10), (result) => {
@@ -245,7 +283,9 @@ test("Test - Date + Time Expression", function() {
245
283
  expect(result.start.get('meridiem')).toBe(0);
246
284
  expect(result.start.isCertain('millisecond')).toBe(false);
247
285
 
248
- expect(result.start).toBeDate(new Date(2014, 4-1, 18, 7, 0));
286
+ var resultDate = result.start.date();
287
+ var expectDate = new Date(2014, 4-1, 18, 7, 0);
288
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
249
289
 
250
290
 
251
291
  expect(result.end.get('year')).toBe(2014);
@@ -258,7 +298,9 @@ test("Test - Date + Time Expression", function() {
258
298
  expect(result.end.get('meridiem')).toBe(0);
259
299
  expect(result.end.isCertain('millisecond')).toBe(false);
260
300
 
261
- expect(result.end).toBeDate(new Date(2014, 4-1, 18, 8, 0));
301
+ var resultDate = result.end.date();
302
+ var expectDate = new Date(2014, 4-1, 18, 8, 0);
303
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
262
304
  });
263
305
 
264
306
 
@@ -277,7 +319,9 @@ test("Test - Date + Time Expression", function() {
277
319
  expect(result.start.get('meridiem')).toBe(1);
278
320
  expect(result.start.isCertain('millisecond')).toBe(false);
279
321
 
280
- expect(result.start).toBeDate(new Date(2014, 4-1, 18, 19, 0));
322
+ var resultDate = result.start.date();
323
+ var expectDate = new Date(2014, 4-1, 18, 19, 0);
324
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
281
325
 
282
326
 
283
327
  expect(result.end.get('year')).toBe(2014);
@@ -290,7 +334,9 @@ test("Test - Date + Time Expression", function() {
290
334
  expect(result.end.get('meridiem')).toBe(1);
291
335
  expect(result.end.isCertain('millisecond')).toBe(false);
292
336
 
293
- expect(result.end).toBeDate(new Date(2014, 4-1, 18, 20, 0));
337
+ var resultDate = result.end.date();
338
+ var expectDate = new Date(2014, 4-1, 18, 20, 0);
339
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
294
340
  });
295
341
  });
296
342
 
@@ -397,218 +443,191 @@ test("Test - Time Expression's Meridiem imply", function() {
397
443
 
398
444
  test("Test - Timezone extraction", function() {
399
445
 
400
- testSingleCase(chrono, 'friday at 2 pm', new Date(2016, 3, 28), (result, text) => {
401
-
402
- expect(result.text).toBe(text);
403
- expect(result.start.isCertain('timezoneOffset')).toBe(false);
404
- expect(!result.start.get('timezoneOffset')).not.toBeNull();
405
- });
406
-
407
-
408
- testSingleCase(chrono, 'friday at 2 pm EST', new Date(2016, 3, 28), (result, text) => {
409
-
410
- expect(result.text).toBe(text);
411
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
412
- expect(result.start.get('timezoneOffset')).toBe(-300);
413
- });
414
-
446
+ var text = "friday at 2 pm";
447
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
448
+ expect(result.text).toBe(text);
449
+ expect(result.start.isCertain('timezoneOffset')).toBe(false);
450
+ expect(!result.start.get('timezoneOffset')).not.toBeNull();
415
451
 
416
- testSingleCase(chrono, 'friday at 2 pm est', new Date(2016, 3, 28), (result, text) => {
417
452
 
418
- expect(result.text).toBe(text);
419
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
420
- expect(result.start.get('timezoneOffset')).toBe(-300);
421
- });
453
+ var text = "friday at 2 pm EST";
454
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
455
+ expect(result.text).toBe(text);
456
+ expect(result.start.isCertain('timezoneOffset')).toBe(true);
457
+ expect(result.start.get('timezoneOffset')).toBe(-300);
422
458
 
423
459
 
424
- testSingleCase(chrono, 'friday at 2 pm establish ...', new Date(2016, 3, 28), (result, text) => {
460
+ var text = "friday at 2 pm est";
461
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
462
+ expect(result.text).toBe(text);
463
+ expect(result.start.isCertain('timezoneOffset')).toBe(true);
464
+ expect(result.start.get('timezoneOffset')).toBe(-300);
425
465
 
426
- expect(result.text).toBe('friday at 2 pm');
427
- expect(result.start.isCertain('timezoneOffset')).toBe(false);
428
- expect(!result.start.get('timezoneOffset')).not.toBeNull();
429
- });
430
466
 
467
+ var text = "friday at 2 pm establish ...";
468
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
469
+ expect(result.text).toBe('friday at 2 pm');
470
+ expect(result.start.isCertain('timezoneOffset')).toBe(false);
471
+ expect(!result.start.get('timezoneOffset')).not.toBeNull();
431
472
 
432
- testSingleCase(chrono, 'friday at 2 pm I will do something', new Date(2016, 3, 28), (result, text) => {
433
473
 
434
- expect(result.text).toBe('friday at 2 pm');
435
- expect(result.start.isCertain('timezoneOffset')).toBe(false);
436
- expect(!result.start.get('timezoneOffset')).not.toBeNull();
437
- });
474
+ var text = "friday at 2 pm I will do something";
475
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
476
+ expect(result.text).toBe('friday at 2 pm');
477
+ expect(result.start.isCertain('timezoneOffset')).toBe(false);
478
+ expect(!result.start.get('timezoneOffset')).not.toBeNull()
438
479
  });
439
480
 
440
481
 
441
482
  test("Test - Timezone extraction override", function() {
442
483
 
443
- testSingleCase(chrono, 'friday at 2 pm IST', new Date(2016, 3, 28), (result, text) => {
444
-
445
- expect(result.text).toBe(text);
446
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
447
- expect(result.start.get('timezoneOffset')).toBe(330);
448
- });
484
+ var text = "friday at 2 pm IST";
485
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
486
+ expect(result.text).toBe(text);
487
+ expect(result.start.isCertain('timezoneOffset')).toBe(true);
488
+ expect(result.start.get('timezoneOffset')).toBe(330);
449
489
 
450
490
  var options = { timezones: { 'IST' : 60 }};
451
- testSingleCase(chrono, 'friday at 2 pm IST', new Date(2016, 3, 28), options, (result, text) => {
452
-
453
- expect(result.text).toBe(text);
454
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
455
- expect(result.start.get('timezoneOffset')).toBe(60);
456
- });
491
+ var text = "friday at 2 pm IST";
492
+ var result = chrono.parse(text, new Date(2016, 3, 28), options)[0];
493
+ expect(result.text).toBe(text);
494
+ expect(result.start.isCertain('timezoneOffset')).toBe(true);
495
+ expect(result.start.get('timezoneOffset')).toBe(60);
457
496
  });
458
497
 
459
498
  test("Test - Milliseconds", function() {
499
+
500
+ var text = "friday at 10:31:50.522 - 10:45:50.122 pm";
501
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
502
+ expect(result.text).toBe(text);
460
503
 
461
- testSingleCase(chrono, 'friday at 10:31:50.522 - 10:45:50.122 pm', new Date(2016, 3, 28), (result, text) => {
504
+ expect(result.start.isCertain('millisecond')).toBe(true);
505
+ expect(result.start.get('millisecond')).toBe(522);
506
+ expect(result.start.get('second')).toBe(50);
507
+ expect(result.start.get('minute')).toBe(31);
508
+ expect(result.start.get('hour')).toBe(22);
462
509
 
463
- expect(result.text).toBe(text);
510
+ expect(result.end.isCertain('millisecond')).toBe(true);
511
+ expect(result.end.get('millisecond')).toBe(122);
512
+ expect(result.end.get('second')).toBe(50);
513
+ expect(result.end.get('minute')).toBe(45);
514
+ expect(result.end.get('hour')).toBe(22);
464
515
 
465
- expect(result.start.isCertain('millisecond')).toBe(true);
466
- expect(result.start.get('millisecond')).toBe(522);
467
- expect(result.start.get('second')).toBe(50);
468
- expect(result.start.get('minute')).toBe(31);
469
- expect(result.start.get('hour')).toBe(22);
470
516
 
471
- expect(result.end.isCertain('millisecond')).toBe(true);
472
- expect(result.end.get('millisecond')).toBe(122);
473
- expect(result.end.get('second')).toBe(50);
474
- expect(result.end.get('minute')).toBe(45);
475
- expect(result.end.get('hour')).toBe(22);
476
- });
517
+ var text = "friday at 10:31:50.522142 - 10:45:50.122124 pm";
518
+ var result = chrono.parse(text, new Date(2016, 3, 28))[0];
519
+ expect(result.text).toBe(text);
477
520
 
521
+ expect(result.start.isCertain('millisecond')).toBe(true);
522
+ expect(result.start.get('millisecond')).toBe(522);
523
+ expect(result.start.get('second')).toBe(50);
524
+ expect(result.start.get('minute')).toBe(31);
525
+ expect(result.start.get('hour')).toBe(22);
478
526
 
479
- testSingleCase(chrono, 'friday at 10:31:50.522142 - 10:45:50.122124 pm', new Date(2016, 3, 28), (result, text) => {
527
+ expect(result.end.isCertain('millisecond')).toBe(true);
528
+ expect(result.end.get('millisecond')).toBe(122);
529
+ expect(result.end.get('second')).toBe(50);
530
+ expect(result.end.get('minute')).toBe(45);
531
+ expect(result.end.get('hour')).toBe(22)
480
532
 
481
- expect(result.text).toBe(text);
482
533
 
483
- expect(result.start.isCertain('millisecond')).toBe(true);
484
- expect(result.start.get('millisecond')).toBe(522);
485
- expect(result.start.get('second')).toBe(50);
486
- expect(result.start.get('minute')).toBe(31);
487
- expect(result.start.get('hour')).toBe(22);
488
-
489
- expect(result.end.isCertain('millisecond')).toBe(true);
490
- expect(result.end.get('millisecond')).toBe(122);
491
- expect(result.end.get('second')).toBe(50);
492
- expect(result.end.get('minute')).toBe(45);
493
- expect(result.end.get('hour')).toBe(22);
494
- });
495
534
  });
496
535
 
497
536
  test("Test - Random date + time expression", function() {
498
537
 
499
- testSingleCase(chrono, 'monday 4/29/2013 630-930am', (result, text) => {
500
-
501
- expect(result.text).toBe(text);
502
- });
503
-
504
- testSingleCase(chrono, 'wednesday 5/1/2013 1115am', (result, text) => {
505
-
506
- expect(result.text).toBe(text);
507
- });
508
-
509
- testSingleCase(chrono, 'friday 5/3/2013 1230pm', (result, text) => {
510
-
511
- expect(result.text).toBe(text);
512
- });
513
-
514
-
515
- testSingleCase(chrono, 'sunday 5/6/2013 750am-910am', (result, text) => {
516
-
517
- expect(result.text).toBe(text);
518
- });
519
-
520
- testSingleCase(chrono, 'monday 5/13/2013 630-930am', (result, text) => {
521
-
522
- expect(result.text).toBe(text);
523
- });
524
-
525
- testSingleCase(chrono, 'wednesday 5/15/2013 1030am', (result, text) => {
526
-
527
- expect(result.text).toBe(text);
528
- });
529
-
530
- testSingleCase(chrono, 'friday 6/21/2013 2:30', (result, text) => {
531
-
532
- expect(result.text).toBe(text);
533
- });
534
-
535
- testSingleCase(chrono, 'tuesday 7/2/2013 1-230 pm', (result, text) => {
536
-
537
- expect(result.text).toBe(text);
538
- });
539
-
540
- testSingleCase(chrono, 'Monday, 6/24/2013, 7:00pm - 8:30pm', (result, text) => {
541
-
542
- expect(result.text).toBe(text);
543
- });
544
-
545
- testSingleCase(chrono, 'Thursday6/20/2013 from 7:00 PM to 10:00 PM', (result, text) => {
546
-
547
- expect(result.text).toBe(text);
548
- });
549
-
550
- testSingleCase(chrono, 'Wednesday, July 03, 2013 2pm', (result, text) => {
551
-
552
- expect(result.text).toBe(text);
553
- });
554
-
555
-
556
- testSingleCase(chrono, '6pm', (result, text) => {
557
-
558
- expect(result.text).toBe(text);
559
- });
560
-
561
- testSingleCase(chrono, '6 pm', (result, text) => {
562
-
563
- expect(result.text).toBe(text);
564
- });
565
-
566
- testSingleCase(chrono, '7-10pm', (result, text) => {
567
-
568
- expect(result.text).toBe(text);
569
- });
570
-
571
- testSingleCase(chrono, '11.1pm', (result, text) => {
572
-
573
- expect(result.text).toBe(text);
574
- });
575
-
576
- testSingleCase(chrono, 'at 12', (result, text) => {
577
-
578
- expect(result.text).toBe(text);
579
- });
580
-
581
- testSingleCase(chrono, 'at noon', (result, text) => {
582
-
583
- expect(result.text).toBe(text);
584
- expect(result.start.get('hour')).toBe(12);
585
- expect(result.start.get('hour')).toBe(12);
586
- });
587
-
588
- testSingleCase(chrono, 'at midnight', (result, text) => {
589
-
590
- expect(result.text).toBe(text);
591
- });
592
-
593
- testSingleCase(chrono, 'at 7 oclock', (result, text) => {
594
-
595
- expect(result.text).toBe(text);
596
- });
597
-
598
- testSingleCase(chrono, 'at 7 o clock', (result, text) => {
599
-
600
- expect(result.text).toBe(text);
601
- });
602
-
603
- testSingleCase(chrono, "at 7 o'clock", (result, text) => {
604
-
605
- expect(result.text).toBe(text);
606
- });
607
-
608
- testSingleCase(chrono, "at 7-8 o'clock", (result, text) => {
609
-
610
- expect(result.text).toBe(text);
611
- });
612
-
613
- testUnexpectedResult(chrono, 'that I need to know or am I covered?');
538
+ var text = "monday 4/29/2013 630-930am";
539
+ var result = chrono.parse(text)[0];
540
+ expect(result.text).toBe(text);
541
+
542
+ var text = "wednesday 5/1/2013 1115am";
543
+ var result = chrono.parse(text)[0];
544
+ expect(result.text).toBe(text);
545
+
546
+ var text = "friday 5/3/2013 1230pm";
547
+ var result = chrono.parse(text)[0];
548
+ expect(result.text).toBe(text);
549
+
550
+
551
+ var text = "sunday 5/6/2013 750am-910am";
552
+ var result = chrono.parse(text)[0];
553
+ expect(result.text).toBe(text);
554
+
555
+ var text = "monday 5/13/2013 630-930am";
556
+ var result = chrono.parse(text)[0];
557
+ expect(result.text).toBe(text);
558
+
559
+ var text = "wednesday 5/15/2013 1030am";
560
+ var result = chrono.parse(text)[0];
561
+ expect(result.text).toBe(text);
562
+
563
+ var text = "friday 6/21/2013 2:30";
564
+ var result = chrono.parse(text)[0];
565
+ expect(result.text).toBe(text);
566
+
567
+ var text = "tuesday 7/2/2013 1-230 pm";
568
+ var result = chrono.parse(text)[0];
569
+ expect(result.text).toBe(text);
570
+
571
+ var text = "Monday, 6/24/2013, 7:00pm - 8:30pm";
572
+ var result = chrono.parse(text)[0];
573
+ expect(result.text).toBe(text);
574
+
575
+ var text = "Thursday6/20/2013 from 7:00 PM to 10:00 PM";
576
+ var result = chrono.parse(text)[0];
577
+ expect(result.text).toBe(text);
578
+
579
+ var text = "Wednesday, July 03, 2013 2pm";
580
+ var result = chrono.parse(text)[0];
581
+ expect(result.text).toBe(text);
582
+
583
+
584
+ var text = "6pm";
585
+ var result = chrono.parse(text)[0];
586
+ expect(result.text).toBe(text);
587
+
588
+ var text = "6 pm";
589
+ var result = chrono.parse(text)[0];
590
+ expect(result.text).toBe(text);
591
+
592
+ var text = "7-10pm";
593
+ var result = chrono.parse(text)[0];
594
+ expect(result.text).toBe(text);
595
+
596
+ var text = "11.1pm";
597
+ var result = chrono.parse(text)[0];
598
+ expect(result.text).toBe(text);
599
+
600
+ var text = "that I need to know or am I covered?";
601
+ var result = chrono.parse(text);
602
+ expect(result.length).toBe(0);
603
+
604
+ var text = "at 12";
605
+ var result = chrono.parse(text)[0];
606
+ expect(result.text).toBe(text);
607
+
608
+ var text = "at noon";
609
+ var result = chrono.parse(text)[0];
610
+ expect(result.text).toBe(text);
611
+ expect(result.start.get('hour')).toBe(12);
612
+ expect(result.start.get('hour')).toBe(12);
613
+
614
+ var text = "at midnight";
615
+ var result = chrono.parse(text)[0];
616
+ expect(result.text).toBe(text);
617
+
618
+ var text = "at 7 oclock";
619
+ var result = chrono.parse(text)[0];
620
+ expect(result.text).toBe(text);
621
+
622
+ var text = "at 7 o clock";
623
+ var result = chrono.parse(text)[0];
624
+ expect(result.text).toBe(text);
625
+
626
+ var text = "at 7 o'clock";
627
+ var result = chrono.parse(text)[0];
628
+ expect(result.text).toBe(text);
629
+
630
+ var text = "at 7-8 o'clock";
631
+ var result = chrono.parse(text)[0];
632
+ expect(result.text).toBe(text)
614
633
  });