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
 
@@ -12,7 +12,9 @@ test("Test - Single Expression", function() {
12
12
  expect(result.start.get('month')).toBe(8);
13
13
  expect(result.start.get('day')).toBe(15);
14
14
 
15
- expect(result.start).toBeDate(new Date(2012, 8-1, 15, 12));
15
+ var resultDate = result.start.date();
16
+ var expectDate = new Date(2012, 8-1, 15, 12);
17
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
16
18
  });
17
19
 
18
20
 
@@ -26,7 +28,9 @@ test("Test - Single Expression", function() {
26
28
  expect(result.start.get('month')).toBe(8);
27
29
  expect(result.start.get('day')).toBe(15);
28
30
 
29
- expect(result.start).toBeDate(new Date(2012, 8-1, 15, 12));
31
+ var resultDate = result.start.date();
32
+ var expectDate = new Date(2012, 8-1, 15, 12);
33
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
30
34
  });
31
35
 
32
36
 
@@ -39,7 +43,9 @@ test("Test - Single Expression", function() {
39
43
  expect(result.start.get('month')).toBe(8);
40
44
  expect(result.start.get('day')).toBe(20);
41
45
 
42
- expect(result.start).toBeDate(new Date(2012, 8-1, 20, 12));
46
+ var resultDate = result.start.date();
47
+ var expectDate = new Date(2012, 8-1, 20, 12);
48
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
43
49
  });
44
50
 
45
51
 
@@ -47,21 +53,27 @@ test("Test - Single Expression", function() {
47
53
  expect(result.index).toBe(0);
48
54
  expect(result.text).toBe('in 5 minutes');
49
55
 
50
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
56
+ var resultDate = result.start.date();
57
+ var expectDate = new Date(2012,7,10,12,19);
58
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
51
59
  });
52
60
 
53
61
  testSingleCase(chrono, 'within 1 hour', new Date(2012,7,10,12,14), (result) => {
54
62
  expect(result.index).toBe(0);
55
63
  expect(result.text).toBe('within 1 hour');
56
64
 
57
- expect(result.start).toBeDate(new Date(2012,7,10,13,14));
65
+ var resultDate = result.start.date();
66
+ var expectDate = new Date(2012,7,10,13,14);
67
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
58
68
  });
59
69
 
60
70
  testSingleCase(chrono, 'In 5 minutes I will go home', new Date(2012,7,10,12,14), (result) => {
61
71
  expect(result.index).toBe(0);
62
72
  expect(result.text).toBe('In 5 minutes');
63
73
 
64
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
74
+ var resultDate = result.start.date();
75
+ var expectDate = new Date(2012,7,10,12,19);
76
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
65
77
  });
66
78
 
67
79
 
@@ -69,7 +81,9 @@ test("Test - Single Expression", function() {
69
81
  expect(result.index).toBe(0);
70
82
  expect(result.text).toBe('In 5 minutes');
71
83
 
72
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
84
+ var resultDate = result.start.date();
85
+ var expectDate = new Date(2012,7,10,12,19);
86
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
73
87
  });
74
88
 
75
89
 
@@ -77,7 +91,9 @@ test("Test - Single Expression", function() {
77
91
  expect(result.index).toBe(0);
78
92
  expect(result.text).toBe('In 5 seconds');
79
93
 
80
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 5));
94
+ var resultDate = result.start.date();
95
+ var expectDate = new Date(2012, 7, 10, 12, 14, 5);
96
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
81
97
  });
82
98
 
83
99
 
@@ -85,7 +101,9 @@ test("Test - Single Expression", function() {
85
101
  expect(result.index).toBe(0);
86
102
  expect(result.text).toBe('within half an hour');
87
103
 
88
- expect(result.start).toBeDate(new Date(2012,7,10,12,44));
104
+ var resultDate = result.start.date();
105
+ var expectDate = new Date(2012,7,10,12,44);
106
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
89
107
  });
90
108
 
91
109
 
@@ -93,7 +111,9 @@ test("Test - Single Expression", function() {
93
111
  expect(result.index).toBe(0);
94
112
  expect(result.text).toBe('within two weeks');
95
113
 
96
- expect(result.start).toBeDate(new Date(2012, 7, 24, 12));
114
+ var resultDate = result.start.date();
115
+ var expectDate = new Date(2012, 7, 24, 12);
116
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
97
117
  });
98
118
 
99
119
 
@@ -101,7 +121,9 @@ test("Test - Single Expression", function() {
101
121
  expect(result.index).toBe(0);
102
122
  expect(result.text).toBe('within a month');
103
123
 
104
- expect(result.start).toBeDate(new Date(2012, 8, 10, 12));
124
+ var resultDate = result.start.date();
125
+ var expectDate = new Date(2012, 8, 10, 12);
126
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
105
127
  });
106
128
 
107
129
 
@@ -109,7 +131,9 @@ test("Test - Single Expression", function() {
109
131
  expect(result.index).toBe(0);
110
132
  expect(result.text).toBe('within a few months');
111
133
 
112
- expect(result.start).toBeDate(new Date(2012, 10, 10, 12));
134
+ var resultDate = result.start.date();
135
+ var expectDate = new Date(2012, 10, 10, 12);
136
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
113
137
  });
114
138
 
115
139
 
@@ -117,7 +141,9 @@ test("Test - Single Expression", function() {
117
141
  expect(result.index).toBe(0);
118
142
  expect(result.text).toBe('within one year');
119
143
 
120
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12));
144
+ var resultDate = result.start.date();
145
+ var expectDate = new Date(2013, 7, 10, 12);
146
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
121
147
  });
122
148
 
123
149
 
@@ -125,7 +151,9 @@ test("Test - Single Expression", function() {
125
151
  expect(result.index).toBe(0);
126
152
  expect(result.text).toBe('within one Year');
127
153
 
128
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12));
154
+ var resultDate = result.start.date();
155
+ var expectDate = new Date(2013, 7, 10, 12);
156
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
129
157
  });
130
158
 
131
159
 
@@ -133,7 +161,9 @@ test("Test - Single Expression", function() {
133
161
  expect(result.index).toBe(0);
134
162
  expect(result.text).toBe('within One year');
135
163
 
136
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12));
164
+ var resultDate = result.start.date();
165
+ var expectDate = new Date(2013, 7, 10, 12);
166
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
137
167
  });
138
168
 
139
169
 
@@ -141,7 +171,9 @@ test("Test - Single Expression", function() {
141
171
  expect(result.index).toBe(0);
142
172
  expect(result.text).toBe('In 5 Minutes');
143
173
 
144
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
174
+ var resultDate = result.start.date();
175
+ var expectDate = new Date(2012,7,10,12,19);
176
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
145
177
  });
146
178
 
147
179
 
@@ -149,94 +181,86 @@ test("Test - Single Expression", function() {
149
181
  expect(result.index).toBe(0);
150
182
  expect(result.text).toBe('In 5 mins');
151
183
 
152
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
184
+ var resultDate = result.start.date();
185
+ var expectDate = new Date(2012,7,10,12,19);
186
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
153
187
  });
154
188
 
155
- testSingleCase(chrono, 'in a week', new Date(2016, 10-1, 1), (result, text) => {
156
-
157
- expect(result.text).toBe(text);
158
- expect(result.start.get('year')).toBe(2016);
159
- expect(result.start.get('month')).toBe(10);
160
- expect(result.start.get('day')).toBe(8);
161
- expect(result.start.get('hour')).toBe(12);
162
- });
189
+ var text = "in a week";
190
+ var result = chrono.parse(text, new Date(2016, 10-1, 1))[0];
191
+ expect(result.text).toBe(text);
192
+ expect(result.start.get('year')).toBe(2016);
193
+ expect(result.start.get('month')).toBe(10);
194
+ expect(result.start.get('day')).toBe(8);
195
+ expect(result.start.get('hour')).toBe(12);
163
196
 
164
197
  });
165
198
 
166
199
 
167
200
  test("Test - Single Expression (Strict)", function() {
168
201
 
169
- testUnexpectedResult(chrono.strict, 'within one year', new Date(2012,7,10,12,14));
202
+ var text = "within one year";
203
+ var results = chrono.strict.parse(text, new Date(2012,7,10,12,14));
204
+ expect(results.length).toBe(0);
170
205
 
171
206
 
172
- testUnexpectedResult(chrono.strict, 'within a few months', new Date(2012, 8-1, 3))
207
+ var text = "within a few months";
208
+ var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
209
+ expect(results.length).toBe(0)
173
210
 
174
211
 
175
- testUnexpectedResult(chrono.strict, 'within a few days', new Date(2012, 8-1, 3))
212
+ var text = "within a few days";
213
+ var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
214
+ expect(results.length).toBe(0)
176
215
  });
177
216
 
178
217
 
179
- test("Test - Single Expression (Implied)", function() {
218
+ test("Test - Single Expression (Certainty)", function() {
180
219
 
181
- var text = "within 30 days";
220
+
221
+ var text = "within 30 years";
182
222
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
183
223
  expect(results.length).toBe(1);
184
- expect(!results[0].start.isCertain('year')).not.toBeNull();
185
- expect(!results[0].start.isCertain('month')).not.toBeNull();
186
- expect(!results[0].start.isCertain('day')).not.toBeNull();
187
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
188
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
189
- expect(!results[0].start.isCertain('second')).not.toBeNull();
224
+ expect(results[0].start.isCertain('year')).toBe(true);
190
225
 
191
226
  var text = "within 30 months";
192
227
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
193
228
  expect(results.length).toBe(1);
194
- expect(!results[0].start.isCertain('year')).not.toBeNull();
195
- expect(!results[0].start.isCertain('month')).not.toBeNull();
196
- expect(!results[0].start.isCertain('day')).not.toBeNull();
197
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
198
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
199
- expect(!results[0].start.isCertain('second')).not.toBeNull();
229
+ expect(results[0].start.isCertain('year')).toBe(true);
230
+ expect(results[0].start.isCertain('month')).toBe(true);
200
231
 
201
- var text = "within 30 years";
232
+ var text = "within 30 days";
202
233
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
203
234
  expect(results.length).toBe(1);
204
- expect(!results[0].start.isCertain('year')).not.toBeNull();
205
- expect(!results[0].start.isCertain('month')).not.toBeNull();
206
- expect(!results[0].start.isCertain('day')).not.toBeNull();
207
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
208
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
209
- expect(!results[0].start.isCertain('second')).not.toBeNull();
235
+ expect(results[0].start.isCertain('year')).toBe(true);
236
+ expect(results[0].start.isCertain('month')).toBe(true);
237
+ expect(results[0].start.isCertain('day')).toBe(true);
210
238
 
211
239
  var text = "within 5 hours";
212
240
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
213
241
  expect(results.length).toBe(1);
214
- expect(!results[0].start.isCertain('year')).not.toBeNull();
215
- expect(!results[0].start.isCertain('month')).not.toBeNull();
216
- expect(!results[0].start.isCertain('day')).not.toBeNull();
217
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
218
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
219
- expect(!results[0].start.isCertain('second')).not.toBeNull();
242
+ expect(results[0].start.isCertain('year')).toBe(true);
243
+ expect(results[0].start.isCertain('month')).toBe(true);
244
+ expect(results[0].start.isCertain('day')).toBe(true);
245
+ expect(results[0].start.isCertain('hour')).toBe(true);
220
246
 
221
247
  var text = "within 5 minutes";
222
248
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
223
249
  expect(results.length).toBe(1);
224
- expect(!results[0].start.isCertain('year')).not.toBeNull();
225
- expect(!results[0].start.isCertain('month')).not.toBeNull();
226
- expect(!results[0].start.isCertain('day')).not.toBeNull();
227
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
228
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
229
- expect(!results[0].start.isCertain('second')).not.toBeNull();
250
+ expect(results[0].start.isCertain('year')).toBe(true);
251
+ expect(results[0].start.isCertain('month')).toBe(true);
252
+ expect(results[0].start.isCertain('day')).toBe(true);
253
+ expect(results[0].start.isCertain('hour')).toBe(true);
254
+ expect(results[0].start.isCertain('minute')).toBe(true);
230
255
 
231
256
  var text = "within 5 seconds";
232
257
  var results = chrono.parse(text, new Date(2012,7,10,12,14));
233
258
  expect(results.length).toBe(1);
234
- expect(!results[0].start.isCertain('year')).not.toBeNull();
235
- expect(!results[0].start.isCertain('month')).not.toBeNull();
236
- expect(!results[0].start.isCertain('day')).not.toBeNull();
237
- expect(!results[0].start.isCertain('hour')).not.toBeNull();
238
- expect(!results[0].start.isCertain('minute')).not.toBeNull();
239
- expect(!results[0].start.isCertain('second')).not.toBeNull();
240
-
259
+ expect(results[0].start.isCertain('year')).toBe(true);
260
+ expect(results[0].start.isCertain('month')).toBe(true);
261
+ expect(results[0].start.isCertain('day')).toBe(true);
262
+ expect(results[0].start.isCertain('hour')).toBe(true);
263
+ expect(results[0].start.isCertain('minute')).toBe(true);
264
+ expect(results[0].start.isCertain('second')).toBe(true);
241
265
  });
242
266
 
@@ -26,7 +26,10 @@ test("Test - Single Expression", function() {
26
26
  expect(result.start.get('timezoneOffset')).toBe(-330);
27
27
  expect(result.text).toBe('1994-11-05T08:15:30-05:30');
28
28
 
29
- expect(result.start).toBeDate(new Date(784043130000));
29
+ var resultDate = result.start.date();
30
+ var expectDate = new Date(784043130000);
31
+
32
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
30
33
  });
31
34
 
32
35
  testSingleCase(chrono, '1994-11-05T13:15:30', new Date(2012,7,8), (result) => {
@@ -40,7 +43,10 @@ test("Test - Single Expression", function() {
40
43
  expect(result.start.get('timezoneOffset')).toBe(0);
41
44
  expect(result.text).toBe('1994-11-05T13:15:30');
42
45
 
43
- expect(result.start).toBeDate(new Date(784041330000));
46
+ var resultDate = result.start.date();
47
+ var expectDate = new Date(784041330000);
48
+
49
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
44
50
  });
45
51
 
46
52
  testSingleCase(chrono, '2015-07-31T12:00:00', new Date(2012,7,8), (result) => {
@@ -54,7 +60,10 @@ test("Test - Single Expression", function() {
54
60
  expect(result.start.get('timezoneOffset')).toBe(0);
55
61
  expect(result.text).toBe('2015-07-31T12:00:00');
56
62
 
57
- expect(result.start).toBeDate(new Date(1438344000000));
63
+ var resultDate = result.start.date();
64
+ var expectDate = new Date(1438344000000);
65
+
66
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
58
67
  });
59
68
 
60
69
 
@@ -69,7 +78,10 @@ test("Test - Single Expression", function() {
69
78
  expect(result.start.get('timezoneOffset')).toBe(0);
70
79
  expect(result.text).toBe('1994-11-05T13:15:30Z');
71
80
 
72
- expect(result.start).toBeDate(new Date(784041330000));
81
+ var resultDate = result.start.date();
82
+ var expectDate = new Date(784041330000);
83
+
84
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
73
85
  });
74
86
 
75
87
  testSingleCase(chrono, '1994-11-05T13:15:30Z', new Date(2012,7,8), (result) => {
@@ -83,7 +95,10 @@ test("Test - Single Expression", function() {
83
95
  expect(result.start.get('timezoneOffset')).toBe(0);
84
96
  expect(result.text).toBe('1994-11-05T13:15:30Z');
85
97
 
86
- expect(result.start).toBeDate(new Date(784041330000));
98
+ var resultDate = result.start.date();
99
+ var expectDate = new Date(784041330000);
100
+
101
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
87
102
  });
88
103
 
89
104
 
@@ -100,7 +115,10 @@ test("Test - Single Expression", function() {
100
115
  expect(result.index).toBe(2);
101
116
  expect(result.text).toBe('1994-11-05T13:15:30Z');
102
117
 
103
- expect(result.start).toBeDate(new Date(784041330000));
118
+ var resultDate = result.start.date();
119
+ var expectDate = new Date(784041330000);
120
+
121
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
104
122
  });
105
123
 
106
124
  testSingleCase(chrono.strict, '2016-05-07T23:45:00.487+01:00', new Date(2012,7,8), (result) => {
@@ -115,7 +133,10 @@ test("Test - Single Expression", function() {
115
133
 
116
134
  expect(result.text).toBe('2016-05-07T23:45:00.487+01:00');
117
135
 
118
- expect(result.start).toBeDate(new Date(1462661100487));
136
+ var resultDate = result.start.date();
137
+ var expectDate = new Date(1462661100487);
138
+
139
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
119
140
  });
120
141
  });
121
142
 
@@ -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
 
@@ -12,7 +12,9 @@ test("Test - Single expression", function() {
12
12
  expect(result.index).toBe(0);
13
13
  expect(result.text).toBe('10 August 2012');
14
14
 
15
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
15
+ var resultDate = result.start.date();
16
+ var expectDate = new Date(2012, 8-1, 10, 12);
17
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
16
18
  });
17
19
 
18
20
  testSingleCase(chrono, '3rd Feb 82', new Date(2012,7,10), (result) => {
@@ -36,7 +38,9 @@ test("Test - Single expression", function() {
36
38
  expect(result.start.get('month')).toBe(8);
37
39
  expect(result.start.get('day')).toBe(10);
38
40
 
39
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
41
+ var resultDate = result.start.date();
42
+ var expectDate = new Date(2012, 8-1, 10, 12);
43
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
40
44
  });
41
45
 
42
46
  testSingleCase(chrono, '10 August 234 BC', new Date(2012,7,10), (result) => {
@@ -48,7 +52,9 @@ test("Test - Single expression", function() {
48
52
  expect(result.start.get('month')).toBe(8);
49
53
  expect(result.start.get('day')).toBe(10);
50
54
 
51
- expect(result.start).toBeDate(new Date(-234, 8-1, 10, 12));
55
+ var resultDate = result.start.date();
56
+ var expectDate = new Date(-234, 8-1, 10, 12);
57
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
52
58
  });
53
59
 
54
60
  testSingleCase(chrono, '10 August 88 AD', new Date(2012,7,10), (result) => {
@@ -75,7 +81,9 @@ test("Test - Single expression", function() {
75
81
  expect(result.start.get('month')).toBe(9);
76
82
  expect(result.start.get('day')).toBe(15);
77
83
 
78
- expect(result.start).toBeDate(new Date(2013, 9-1, 15, 12));
84
+ var resultDate = result.start.date();
85
+ var expectDate = new Date(2013, 9-1, 15, 12);
86
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
79
87
  });
80
88
 
81
89
  testSingleCase(chrono, 'SUN 15SEP', new Date(2013,7,10), (result) => {
@@ -87,7 +95,9 @@ test("Test - Single expression", function() {
87
95
  expect(result.start.get('month')).toBe(9);
88
96
  expect(result.start.get('day')).toBe(15);
89
97
 
90
- expect(result.start).toBeDate(new Date(2013, 9-1, 15, 12));
98
+ var resultDate = result.start.date();
99
+ var expectDate = new Date(2013, 9-1, 15, 12);
100
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
91
101
  });
92
102
 
93
103
  testSingleCase(chrono, 'The Deadline is 10 August', new Date(2012,7,10), (result) => {
@@ -100,7 +110,9 @@ test("Test - Single expression", function() {
100
110
  expect(result.start.get('month')).toBe(8);
101
111
  expect(result.start.get('day')).toBe(10);
102
112
 
103
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
113
+ var resultDate = result.start.date();
114
+ var expectDate = new Date(2012, 8-1, 10, 12);
115
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
104
116
  });
105
117
 
106
118
 
@@ -115,7 +127,9 @@ test("Test - Single expression", function() {
115
127
  expect(result.start.get('day')).toBe(10);
116
128
  expect(result.start.get('weekday')).toBe(2);
117
129
 
118
- expect(result.start).toBeDate(new Date(2013, 1-1, 10, 12));
130
+ var resultDate = result.start.date();
131
+ var expectDate = new Date(2013, 1-1, 10, 12);
132
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
119
133
  });
120
134
 
121
135
 
@@ -130,7 +144,9 @@ test("Test - Single expression", function() {
130
144
  expect(result.start.get('day')).toBe(10);
131
145
  expect(result.start.get('weekday')).toBe(2);
132
146
 
133
- expect(result.start).toBeDate(new Date(2013, 1-1, 10, 12));
147
+ var resultDate = result.start.date();
148
+ var expectDate = new Date(2013, 1-1, 10, 12);
149
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
134
150
  });
135
151
 
136
152
 
@@ -144,7 +160,9 @@ test("Test - Single expression", function() {
144
160
  expect(result.start.get('month')).toBe(3);
145
161
  expect(result.start.get('day')).toBe(31);
146
162
 
147
- expect(result.start).toBeDate(new Date(2016, 3-1, 31, 12));
163
+ var resultDate = result.start.date();
164
+ var expectDate = new Date(2016, 3-1, 31, 12);
165
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
148
166
  });
149
167
 
150
168
 
@@ -158,7 +176,9 @@ test("Test - Single expression", function() {
158
176
  expect(result.start.get('month')).toBe(2);
159
177
  expect(result.start.get('day')).toBe(23);
160
178
 
161
- expect(result.start).toBeDate(new Date(2016, 2-1, 23, 12));
179
+ var resultDate = result.start.date();
180
+ var expectDate = new Date(2016, 2-1, 23, 12);
181
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
162
182
  });
163
183
  });
164
184
 
@@ -203,7 +223,9 @@ test("Test - Range expression", function() {
203
223
  expect(result.start.get('month')).toBe(8);
204
224
  expect(result.start.get('day')).toBe(10);
205
225
 
206
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
226
+ var resultDate = result.start.date();
227
+ var expectDate = new Date(2012, 8-1, 10, 12);
228
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
207
229
 
208
230
 
209
231
  expect(result.end).not.toBeNull();
@@ -211,7 +233,9 @@ test("Test - Range expression", function() {
211
233
  expect(result.end.get('month')).toBe(8);
212
234
  expect(result.end.get('day')).toBe(22);
213
235
 
214
- expect(result.end).toBeDate(new Date(2012, 8-1, 22, 12));
236
+ var resultDate = result.end.date();
237
+ var expectDate = new Date(2012, 8-1, 22, 12);
238
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
215
239
  });
216
240
 
217
241
 
@@ -225,7 +249,9 @@ test("Test - Range expression", function() {
225
249
  expect(result.start.get('month')).toBe(8);
226
250
  expect(result.start.get('day')).toBe(10);
227
251
 
228
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
252
+ var resultDate = result.start.date();
253
+ var expectDate = new Date(2012, 8-1, 10, 12);
254
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
229
255
 
230
256
 
231
257
  expect(result.end).not.toBeNull();
@@ -233,7 +259,9 @@ test("Test - Range expression", function() {
233
259
  expect(result.end.get('month')).toBe(8);
234
260
  expect(result.end.get('day')).toBe(22);
235
261
 
236
- expect(result.end).toBeDate(new Date(2012, 8-1, 22, 12));
262
+ var resultDate = result.end.date();
263
+ var expectDate = new Date(2012, 8-1, 22, 12);
264
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
237
265
  });
238
266
 
239
267
  testSingleCase(chrono, '10 August - 12 September', new Date(2012,7,10), (result) => {
@@ -246,7 +274,9 @@ test("Test - Range expression", function() {
246
274
  expect(result.start.get('month')).toBe(8);
247
275
  expect(result.start.get('day')).toBe(10);
248
276
 
249
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 12));
277
+ var resultDate = result.start.date();
278
+ var expectDate = new Date(2012, 8-1, 10, 12);
279
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
250
280
 
251
281
 
252
282
  expect(result.end).not.toBeNull();
@@ -254,7 +284,9 @@ test("Test - Range expression", function() {
254
284
  expect(result.end.get('month')).toBe(9);
255
285
  expect(result.end.get('day')).toBe(12);
256
286
 
257
- expect(result.end).toBeDate(new Date(2012, 9-1, 12, 12));
287
+ var resultDate = result.end.date();
288
+ var expectDate = new Date(2012, 9-1, 12, 12);
289
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
258
290
  });
259
291
 
260
292
  testSingleCase(chrono, '10 August - 12 September 2013', new Date(2012,7,10), (result) => {
@@ -267,7 +299,9 @@ test("Test - Range expression", function() {
267
299
  expect(result.start.get('month')).toBe(8);
268
300
  expect(result.start.get('day')).toBe(10);
269
301
 
270
- expect(result.start).toBeDate(new Date(2013, 8-1, 10, 12));
302
+ var resultDate = result.start.date();
303
+ var expectDate = new Date(2013, 8-1, 10, 12);
304
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
271
305
 
272
306
 
273
307
  expect(result.end).not.toBeNull();
@@ -275,7 +309,9 @@ test("Test - Range expression", function() {
275
309
  expect(result.end.get('month')).toBe(9);
276
310
  expect(result.end.get('day')).toBe(12);
277
311
 
278
- expect(result.end).toBeDate(new Date(2013, 9-1, 12, 12));
312
+ var resultDate = result.end.date();
313
+ var expectDate = new Date(2013, 9-1, 12, 12);
314
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
279
315
  });
280
316
  });
281
317
 
@@ -292,7 +328,9 @@ test("Test - Combined expression", function() {
292
328
  expect(result.start.get('day')).toBe(12);
293
329
 
294
330
 
295
- expect(result.start).toBeDate(new Date(2012, 7-1, 12, 19, 0));
331
+ var resultDate = result.start.date();
332
+ var expectDate = new Date(2012, 7-1, 12, 19, 0);
333
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
296
334
  });
297
335
 
298
336
 
@@ -306,7 +344,9 @@ test("Test - Combined expression", function() {
306
344
  expect(result.start.get('day')).toBe(5);
307
345
 
308
346
 
309
- expect(result.start).toBeDate(new Date(2012, 5-1, 5, 12, 0));
347
+ var resultDate = result.start.date();
348
+ var expectDate = new Date(2012, 5-1, 5, 12, 0);
349
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
310
350
  });
311
351
 
312
352
 
@@ -320,7 +360,9 @@ test("Test - Combined expression", function() {
320
360
  expect(result.start.get('day')).toBe(7);
321
361
  expect(result.start.get('hour')).toBe(11);
322
362
 
323
- expect(result.start).toBeDate(new Date(2012, 5-1, 7, 11, 0));
363
+ var resultDate = result.start.date();
364
+ var expectDate = new Date(2012, 5-1, 7, 11, 0);
365
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
324
366
  });
325
367
  });
326
368
 
@@ -397,13 +439,21 @@ test("Test - little endian date followed by time", function() {
397
439
 
398
440
  test("Test - Impossible Dates (Strict Mode)", function() {
399
441
 
400
- testUnexpectedResult(chrono.strict, '32 August 2014', new Date(2012,7,10));
442
+ var text = "32 August 2014";
443
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
444
+ expect(results.length).toBe(0);
401
445
 
402
- testUnexpectedResult(chrono.strict, '29 February 2014', new Date(2012,7,10));
446
+ var text = "29 February 2014";
447
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
448
+ expect(results.length).toBe(0);
403
449
 
404
- testUnexpectedResult(chrono.strict, '32 August', new Date(2012,7,10));
450
+ var text = "32 August";
451
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
452
+ expect(results.length).toBe(0);
405
453
 
406
- testUnexpectedResult(chrono.strict, '29 February', new Date(2013,7,10))
454
+ var text = "29 February";
455
+ var results = chrono.strict.parse(text, new Date(2013,7,10));
456
+ expect(results.length).toBe(0)
407
457
 
408
458
  });
409
459