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,9 +1,13 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase, testUnexpectedResult } from '../test_util';
1
+ var chrono = require('../../src/chrono');
3
2
 
4
3
  test("Test - Single Expression", function() {
5
4
 
6
- testSingleCase(chrono.de, 'Wir unternahmen etwas vor 5 Tagen', new Date(2012,7,10), (result) => {
5
+ var text = "Wir unternahmen etwas vor 5 Tagen";
6
+ var results = chrono.de.parse(text, new Date(2012,7,10));
7
+ expect(results.length).toBe(1);
8
+
9
+ var result = results[0];
10
+ if(result){
7
11
  expect(result.start).not.toBeNull();
8
12
  expect(result.start.get('year')).toBe(2012);
9
13
  expect(result.start.get('month')).toBe(8);
@@ -12,10 +16,17 @@ test("Test - Single Expression", function() {
12
16
  expect(result.index).toBe(22);
13
17
  expect(result.text).toBe('vor 5 Tagen');
14
18
 
15
- expect(result.start).toBeDate(new Date(2012, 8-1, 5, 12));
16
- });
19
+ var resultDate = result.start.date();
20
+ var expectDate = new Date(2012, 8-1, 5, 12);
21
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
22
+ }
23
+
24
+ var text = "Vor 10 Tagen unternahmen wir etwas";
25
+ var results = chrono.de.parse(text, new Date(2012,7,10));
26
+ expect(results.length).toBe(1);
17
27
 
18
- testSingleCase(chrono.de, 'Vor 10 Tagen unternahmen wir etwas', new Date(2012,7,10), (result) => {
28
+ var result = results[0];
29
+ if(result){
19
30
  expect(result.start).not.toBeNull();
20
31
  expect(result.start.get('year')).toBe(2012);
21
32
  expect(result.start.get('month')).toBe(7);
@@ -24,72 +35,121 @@ test("Test - Single Expression", function() {
24
35
  expect(result.index).toBe(0);
25
36
  expect(result.text).toBe('Vor 10 Tagen');
26
37
 
27
- expect(result.start).toBeDate(new Date(2012, 7-1, 31, 12));
28
- });
38
+ var resultDate = result.start.date();
39
+ var expectDate = new Date(2012, 7-1, 31, 12);
40
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
41
+ }
29
42
 
30
43
 
31
- testSingleCase(chrono.de, 'vor 15 minuten', new Date(2012,7,10,12,14), (result) => {
44
+ var text = "vor 15 minuten";
45
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
46
+ expect(results.length).toBe(1);
47
+
48
+ var result = results[0];
49
+ if(result){
32
50
  expect(result.index).toBe(0);
33
51
  expect(result.text).toBe('vor 15 minuten');
34
52
  expect(result.start.get('hour')).toBe(11);
35
53
  expect(result.start.get('minute')).toBe(59);
36
54
 
37
- expect(result.start).toBeDate(new Date(2012,7,10,11,59));
38
- });
55
+ var resultDate = result.start.date();
56
+ var expectDate = new Date(2012,7,10,11,59);
57
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
58
+ }
59
+
60
+ var text = " vor 12 Stunden";
61
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
62
+ expect(results.length).toBe(1);
39
63
 
40
- testSingleCase(chrono.de, ' vor 12 Stunden', new Date(2012,7,10,12,14), (result) => {
64
+ var result = results[0];
65
+ if(result){
41
66
  expect(result.index).toBe(3);
42
67
  expect(result.text).toBe('vor 12 Stunden');
43
68
  expect(result.start.get('hour')).toBe(0);
44
69
  expect(result.start.get('minute')).toBe(14);
45
70
 
46
- expect(result.start).toBeDate(new Date(2012,7,10,0,14));
47
- });
71
+ var resultDate = result.start.date();
72
+ var expectDate = new Date(2012,7,10,0,14);
73
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
74
+ }
48
75
 
49
- testSingleCase(chrono.de, ' vor einer halben Stunde', new Date(2012,7,10,12,14), (result) => {
76
+ var text = " vor einer halben Stunde";
77
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
78
+ expect(results.length).toBe(1);
79
+
80
+ var result = results[0];
81
+ if(result){
50
82
  expect(result.index).toBe(3);
51
83
  expect(result.text).toBe('vor einer halben Stunde');
52
84
  expect(result.start.get('hour')).toBe(11);
53
85
  expect(result.start.get('minute')).toBe(44);
54
86
 
55
- expect(result.start).toBeDate(new Date(2012,7,10,11,44));
56
- });
87
+ var resultDate = result.start.date();
88
+ var expectDate = new Date(2012,7,10,11,44);
89
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
90
+ }
91
+
57
92
 
93
+ var text = "Vor 12 Stunden tat ich etwas";
94
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
95
+ expect(results.length).toBe(1);
58
96
 
59
- testSingleCase(chrono.de, 'Vor 12 Stunden tat ich etwas', new Date(2012,7,10,12,14), (result) => {
97
+ var result = results[0];
98
+ if(result){
60
99
  expect(result.index).toBe(0);
61
100
  expect(result.text).toBe('Vor 12 Stunden');
62
101
  expect(result.start.get('hour')).toBe(0);
63
102
  expect(result.start.get('minute')).toBe(14);
64
103
 
65
- expect(result.start).toBeDate(new Date(2012,7,10,0,14));
66
- });
104
+ var resultDate = result.start.date();
105
+ var expectDate = new Date(2012,7,10,0,14);
106
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
107
+ }
67
108
 
68
109
 
69
- testSingleCase(chrono.de, 'Vor 12 Sekunden tat ich etwas', new Date(2012, 7, 10, 12, 14), (result) => {
110
+ var text = "Vor 12 Sekunden tat ich etwas";
111
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12, 14));
112
+ expect(results.length).toBe(1);
113
+
114
+ var result = results[0];
115
+ if(result){
70
116
  expect(result.index).toBe(0);
71
117
  expect(result.text).toBe('Vor 12 Sekunden');
72
118
  expect(result.start.get('hour')).toBe(12);
73
119
  expect(result.start.get('minute')).toBe(13);
74
120
  expect(result.start.get('second')).toBe(48);
75
121
 
76
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 48));
77
- });
122
+ var resultDate = result.start.date();
123
+ var expectDate = new Date(2012, 7, 10, 12, 13, 48);
124
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
125
+ }
126
+
78
127
 
128
+ var text = "Vor drei Sekunden trank ich Tee";
129
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12, 14));
130
+ expect(results.length).toBe(1);
79
131
 
80
- testSingleCase(chrono.de, 'Vor drei Sekunden trank ich Tee', new Date(2012, 7, 10, 12, 14), (result) => {
132
+ var result = results[0];
133
+ if(result){
81
134
  expect(result.index).toBe(0);
82
135
  expect(result.text).toBe('Vor drei Sekunden');
83
136
  expect(result.start.get('hour')).toBe(12);
84
137
  expect(result.start.get('minute')).toBe(13);
85
138
  expect(result.start.get('second')).toBe(57);
86
139
 
87
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 57));
88
- });
140
+ var resultDate = result.start.date();
141
+ var expectDate = new Date(2012, 7, 10, 12, 13, 57);
142
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
143
+ }
89
144
 
90
145
 
91
146
 
92
- testSingleCase(chrono.de, 'Vor 5 tagen taten wir etwas', new Date(2012,7,10), (result) => {
147
+ var text = "Vor 5 tagen taten wir etwas";
148
+ var results = chrono.de.parse(text, new Date(2012,7,10));
149
+ expect(results.length).toBe(1);
150
+
151
+ var result = results[0];
152
+ if(result){
93
153
  expect(result.start).not.toBeNull();
94
154
  expect(result.start.get('year')).toBe(2012);
95
155
  expect(result.start.get('month')).toBe(8);
@@ -98,21 +158,35 @@ test("Test - Single Expression", function() {
98
158
  expect(result.index).toBe(0);
99
159
  expect(result.text).toBe('Vor 5 tagen');
100
160
 
101
- expect(result.start).toBeDate(new Date(2012, 8-1, 5, 12));
102
- });
161
+ var resultDate = result.start.date();
162
+ var expectDate = new Date(2012, 8-1, 5, 12);
163
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
164
+ }
165
+
103
166
 
167
+ var text = " vor Einer halben stunde";
168
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
169
+ expect(results.length).toBe(1);
104
170
 
105
- testSingleCase(chrono.de, ' vor Einer halben stunde', new Date(2012,7,10,12,14), (result) => {
171
+ var result = results[0];
172
+ if(result){
106
173
  expect(result.index).toBe(3);
107
174
  expect(result.text).toBe('vor Einer halben stunde');
108
175
  expect(result.start.get('hour')).toBe(11);
109
176
  expect(result.start.get('minute')).toBe(44);
110
177
 
111
- expect(result.start).toBeDate(new Date(2012,7,10,11,44));
112
- });
178
+ var resultDate = result.start.date();
179
+ var expectDate = new Date(2012,7,10,11,44);
180
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
181
+ }
113
182
 
114
183
 
115
- testSingleCase(chrono.de, 'Vor einer tag, wir taten', new Date(2012,7,10), (result) => {
184
+ var text = "Vor einer tag, wir taten";
185
+ var results = chrono.de.parse(text, new Date(2012,7,10));
186
+ expect(results.length).toBe(1);
187
+
188
+ var result = results[0];
189
+ if(result){
116
190
  expect(result.start).not.toBeNull();
117
191
  expect(result.start.get('year')).toBe(2012);
118
192
  expect(result.start.get('month')).toBe(8);
@@ -121,25 +195,39 @@ test("Test - Single Expression", function() {
121
195
  expect(result.index).toBe(0);
122
196
  expect(result.text).toBe('Vor einer tag');
123
197
 
124
- expect(result.start).toBeDate(new Date(2012, 8-1, 9, 12));
125
- });
198
+ var resultDate = result.start.date();
199
+ var expectDate = new Date(2012, 8-1, 9, 12);
200
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
201
+ }
202
+
126
203
 
204
+ var text = "vor einer min";
205
+ var results = chrono.de.parse(text, new Date(2012,7,10,12,14));
206
+ expect(results.length).toBe(1);
127
207
 
128
- testSingleCase(chrono.de, 'vor einer min', new Date(2012,7,10,12,14), (result) => {
208
+ var result = results[0];
209
+ if(result){
129
210
  expect(result.index).toBe(0);
130
211
  expect(result.text).toBe('vor einer min');
131
212
  expect(result.start.get('hour')).toBe(12);
132
213
  expect(result.start.get('minute')).toBe(13);
133
214
 
134
- expect(result.start).toBeDate(new Date(2012,7,10,12,13));
135
- });
215
+ var resultDate = result.start.date();
216
+ var expectDate = new Date(2012,7,10,12,13);
217
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
218
+ }
136
219
 
137
220
  });
138
221
 
139
222
 
140
223
  test("Test - Single Expression (Casual)", function() {
141
224
 
142
- testSingleCase(chrono.de, 'Vor 5 Monaten unternahmen wir etwas', new Date(2012, 8-1,10), (result) => {
225
+ var text = "Vor 5 Monaten unternahmen wir etwas";
226
+ var results = chrono.de.parse(text, new Date(2012, 8-1,10));
227
+ expect(results.length).toBe(1);
228
+
229
+ var result = results[0];
230
+ if(result){
143
231
  expect(result.start).not.toBeNull();
144
232
  expect(result.start.get('year')).toBe(2012);
145
233
  expect(result.start.get('month')).toBe(3);
@@ -148,10 +236,17 @@ test("Test - Single Expression (Casual)", function() {
148
236
  expect(result.index).toBe(0);
149
237
  expect(result.text).toBe('Vor 5 Monaten');
150
238
 
151
- expect(result.start).toBeDate(new Date(2012, 3-1, 10, 12));
152
- });
239
+ var resultDate = result.start.date();
240
+ var expectDate = new Date(2012, 3-1, 10, 12);
241
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
242
+ }
243
+
244
+ var text = "Vor 5 Jahren unternahmen wir etwas";
245
+ var results = chrono.de.parse(text, new Date(2012, 8-1,10));
246
+ expect(results.length).toBe(1);
153
247
 
154
- testSingleCase(chrono.de, 'Vor 5 Jahren unternahmen wir etwas', new Date(2012, 8-1,10), (result) => {
248
+ var result = results[0];
249
+ if(result){
155
250
  expect(result.start).not.toBeNull();
156
251
  expect(result.start.get('year')).toBe(2007);
157
252
  expect(result.start.get('month')).toBe(8);
@@ -160,11 +255,18 @@ test("Test - Single Expression (Casual)", function() {
160
255
  expect(result.index).toBe(0);
161
256
  expect(result.text).toBe('Vor 5 Jahren');
162
257
 
163
- expect(result.start).toBeDate(new Date(2007, 8-1, 10, 12));
164
- });
258
+ var resultDate = result.start.date();
259
+ var expectDate = new Date(2007, 8-1, 10, 12);
260
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
261
+ }
165
262
 
166
263
 
167
- testSingleCase(chrono.de, 'vor einer Woche aßen wir Pizza', new Date(2012, 8-1, 3), (result) => {
264
+ var text = "vor einer Woche aßen wir Pizza";
265
+ var results = chrono.de.parse(text, new Date(2012, 8-1, 3));
266
+ expect(results.length).toBe(1);
267
+
268
+ var result = results[0];
269
+ if(result){
168
270
  expect(result.start).not.toBeNull();
169
271
  expect(result.start.get('year')).toBe(2012);
170
272
  expect(result.start.get('month')).toBe(7);
@@ -173,11 +275,18 @@ test("Test - Single Expression (Casual)", function() {
173
275
  expect(result.index).toBe(0);
174
276
  expect(result.text).toBe('vor einer Woche');
175
277
 
176
- expect(result.start).toBeDate(new Date(2012, 7-1, 27, 12));
177
- });
278
+ var resultDate = result.start.date();
279
+ var expectDate = new Date(2012, 7-1, 27, 12);
280
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
281
+ }
282
+
178
283
 
284
+ var text = "vor einigen Tagen aßen wir Pizza";
285
+ var results = chrono.de.parse(text, new Date(2012, 8-1, 3));
286
+ expect(results.length).toBe(1);
179
287
 
180
- testSingleCase(chrono.de, 'vor einigen Tagen aßen wir Pizza', new Date(2012, 8-1, 3), (result) => {
288
+ var result = results[0];
289
+ if(result){
181
290
  expect(result.start).not.toBeNull();
182
291
  expect(result.start.get('year')).toBe(2012);
183
292
  expect(result.start.get('month')).toBe(7);
@@ -186,13 +295,19 @@ test("Test - Single Expression (Casual)", function() {
186
295
  expect(result.index).toBe(0);
187
296
  expect(result.text).toBe('vor einigen Tagen');
188
297
 
189
- expect(result.start).toBeDate(new Date(2012, 7-1, 31, 12));
190
- });
298
+ var resultDate = result.start.date();
299
+ var expectDate = new Date(2012, 7-1, 31, 12);
300
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
301
+ }
191
302
  });
192
303
 
193
304
  test("Test - Single Expression (Strict)", function() {
194
305
 
195
- testUnexpectedResult(chrono.strict, 'vor einer woche taten wir etwas', new Date(2012, 8-1, 3))
306
+ var text = "vor einer woche taten wir etwas";
307
+ var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
308
+ expect(results.length).toBe(0)
196
309
 
197
- testSingleCase(chrono.de, 'vor einer woche taten wir etwas', new Date(2012, 8-1, 3))
310
+ var text = "vor einer woche taten wir etwas";
311
+ var results = chrono.de.parse(text, new Date(2012, 8-1, 3));
312
+ expect(results.length).toBe(1)
198
313
  });
@@ -1,152 +1,166 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase } from '../test_util';
1
+ var chrono = require('../../src/chrono');
3
2
 
4
3
  test("Test - Single Expression", function() {
5
4
 
6
5
 
7
- testSingleCase(chrono.de, '18:10', new Date(2012,7,10), (result) => {
8
- expect(result.index).toBe(0);
9
- expect(result.text).toBe('18:10');
6
+ var text = "18:10";
7
+ var results = chrono.de.parse(text, new Date(2012,7,10));
8
+ expect(results.length).toBe(1)
10
9
 
11
- expect(result.start).not.toBeNull();
12
- expect(result.start.get('hour')).toBe(18);
13
- expect(result.start.get('minute')).toBe(10);
10
+ var result = results[0];
11
+ if(result){
12
+ expect(result.index).toBe(0)
13
+ expect(result.text).toBe('18:10')
14
14
 
15
+ expect(result.start).not.toBeNull()
16
+ expect(result.start.get('hour')).toBe(18)
17
+ expect(result.start.get('minute')).toBe(10)
15
18
 
16
- expect(result.start.isCertain('day')).toBe(false);
17
- expect(result.start.isCertain('month')).toBe(false);
18
- expect(result.start.isCertain('year')).toBe(false);
19
- expect(result.start.isCertain('hour')).toBe(true);
20
- expect(result.start.isCertain('minute')).toBe(true);
21
- expect(result.start.isCertain('second')).toBe(false);
22
- expect(result.start.isCertain('millisecond')).toBe(false);
23
19
 
24
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 10));
25
- });
20
+ expect(result.start.isCertain('day')).toBe(false)
21
+ expect(result.start.isCertain('month')).toBe(false)
22
+ expect(result.start.isCertain('year')).toBe(false)
23
+ expect(result.start.isCertain('hour')).toBe(true)
24
+ expect(result.start.isCertain('minute')).toBe(true)
25
+ expect(result.start.isCertain('second')).toBe(false)
26
+ expect(result.start.isCertain('millisecond')).toBe(false)
27
+
28
+ var resultDate = result.start.date();
29
+ var expectDate = new Date(2012, 7, 10, 18, 10);
30
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
31
+ }
26
32
 
27
33
  });
28
34
 
29
35
  test("Test - Range Expression", function() {
30
36
 
31
- testSingleCase(chrono.de, '18:10 - 22.32', new Date(2012,7,10), (result) => {
32
- expect(result.index).toBe(0);
33
- expect(result.text).toBe('18:10 - 22.32');
34
-
35
- expect(result.start).not.toBeNull();
36
- expect(result.start.get('hour')).toBe(18);
37
- expect(result.start.get('minute')).toBe(10);
38
-
39
- expect(result.start.isCertain('day')).toBe(false);
40
- expect(result.start.isCertain('month')).toBe(false);
41
- expect(result.start.isCertain('year')).toBe(false);
42
- expect(result.start.isCertain('hour')).toBe(true);
43
- expect(result.start.isCertain('minute')).toBe(true);
44
- expect(result.start.isCertain('second')).toBe(false);
45
- expect(result.start.isCertain('millisecond')).toBe(false);
46
-
47
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 10));
48
-
49
- expect(result.end).not.toBeNull();
50
- expect(result.end.get('hour')).toBe(22);
51
- expect(result.end.get('minute')).toBe(32);
52
-
53
- expect(result.end.isCertain('day')).toBe(false);
54
- expect(result.end.isCertain('month')).toBe(false);
55
- expect(result.end.isCertain('year')).toBe(false);
56
- expect(result.end.isCertain('hour')).toBe(true);
57
- expect(result.end.isCertain('minute')).toBe(true);
58
- expect(result.end.isCertain('second')).toBe(false);
59
- expect(result.end.isCertain('millisecond')).toBe(false);
60
-
61
- expect(result.end).toBeDate(new Date(2012, 7, 10, 22, 32));
62
- });
63
-
64
- testSingleCase(chrono.de, ' von 6:30 bis 23:00 ', new Date(2012,7,10), (result) => {
65
- expect(result.index).toBe(1);
66
- expect(result.text).toBe('von 6:30 bis 23:00');
67
-
68
- expect(result.start).not.toBeNull();
69
- expect(result.start.get('hour')).toBe(6);
70
- expect(result.start.get('minute')).toBe(30);
71
- expect(result.start.get('meridiem')).toBe(0);
72
-
73
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
74
-
75
- expect(result.end).not.toBeNull();
76
- expect(result.end.get('hour')).toBe(23);
77
- expect(result.end.get('minute')).toBe(0);
78
- expect(result.end.get('meridiem')).toBe(1);
79
-
80
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
81
- });
37
+ var text = "18:10 - 22.32";
38
+ var results = chrono.de.parse(text, new Date(2012,7,10));
39
+ expect(results.length).toBe(1)
40
+
41
+ var result = results[0];
42
+ if(result){
43
+ expect(result.index).toBe(0)
44
+ expect(result.text).toBe('18:10 - 22.32')
45
+
46
+ expect(result.start).not.toBeNull()
47
+ expect(result.start.get('hour')).toBe(18)
48
+ expect(result.start.get('minute')).toBe(10)
49
+
50
+ expect(result.start.isCertain('day')).toBe(false)
51
+ expect(result.start.isCertain('month')).toBe(false)
52
+ expect(result.start.isCertain('year')).toBe(false)
53
+ expect(result.start.isCertain('hour')).toBe(true)
54
+ expect(result.start.isCertain('minute')).toBe(true)
55
+ expect(result.start.isCertain('second')).toBe(false)
56
+ expect(result.start.isCertain('millisecond')).toBe(false)
57
+
58
+ var resultDate = result.start.date();
59
+ var expectDate = new Date(2012, 7, 10, 18, 10);
60
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
61
+
62
+ expect(result.end).not.toBeNull()
63
+ expect(result.end.get('hour')).toBe(22)
64
+ expect(result.end.get('minute')).toBe(32)
65
+
66
+ expect(result.end.isCertain('day')).toBe(false)
67
+ expect(result.end.isCertain('month')).toBe(false)
68
+ expect(result.end.isCertain('year')).toBe(false)
69
+ expect(result.end.isCertain('hour')).toBe(true)
70
+ expect(result.end.isCertain('minute')).toBe(true)
71
+ expect(result.end.isCertain('second')).toBe(false)
72
+ expect(result.end.isCertain('millisecond')).toBe(false)
73
+
74
+ var resultDate = result.end.date();
75
+ var expectDate = new Date(2012, 7, 10, 22, 32);
76
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
77
+ }
78
+
79
+ var text = " von 6:30 bis 23:00 ";
80
+ var results = chrono.de.parse(text, new Date(2012,7,10));
81
+ expect(results.length).toBe(1)
82
+
83
+ var result = results[0];
84
+ if(result){
85
+ expect(result.index).toBe(1)
86
+ expect(result.text).toBe('von 6:30 bis 23:00')
87
+
88
+ expect(result.start).not.toBeNull()
89
+ expect(result.start.get('hour')).toBe(6)
90
+ expect(result.start.get('minute')).toBe(30)
91
+ expect(result.start.get('meridiem')).toBe(0)
92
+
93
+ var resultDate = result.start.date();
94
+ var expectDate = new Date(2012, 7, 10, 6, 30);
95
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
96
+
97
+ expect(result.end).not.toBeNull()
98
+ expect(result.end.get('hour')).toBe(23)
99
+ expect(result.end.get('minute')).toBe(0)
100
+ expect(result.end.get('meridiem')).toBe(1)
101
+
102
+ var resultDate = result.end.date();
103
+ var expectDate = new Date(2012, 7, 10, 23, 0);
104
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
105
+ }
82
106
 
83
107
  });
84
108
 
85
109
 
86
110
  test("Test - Timezone extraction", function() {
87
111
 
88
- testSingleCase(chrono.de, 'Freitag um 14 Uhr', new Date(2016, 3, 28), (result, text) => {
89
-
90
- expect(result.text).toBe(text);
91
- expect(result.start.isCertain('timezoneOffset')).toBe(false);
92
- expect(!result.start.get('timezoneOffset')).not.toBeNull();
93
- });
112
+ var text = "Freitag um 14 Uhr";
113
+ var result = chrono.de.parse(text, new Date(2016, 3, 28))[0];
114
+ expect(result.text).toBe(text)
115
+ expect(result.start.isCertain('timezoneOffset')).toBe(false)
116
+ expect(!result.start.get('timezoneOffset')).not.toBeNull()
94
117
 
95
118
 
96
- testSingleCase(chrono.de, 'Freitag um 14 Uhr CET', new Date(2016, 3, 28), (result, text) => {
119
+ var text = "Freitag um 14 Uhr CET";
120
+ var result = chrono.de.parse(text, new Date(2016, 3, 28))[0];
121
+ expect(result.text).toBe(text)
122
+ expect(result.start.isCertain('timezoneOffset')).toBe(true)
123
+ expect(result.start.get('timezoneOffset')).toBe(60)
97
124
 
98
- expect(result.text).toBe(text);
99
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
100
- expect(result.start.get('timezoneOffset')).toBe(60);
101
- });
102
125
 
126
+ var text = "am Freitag um 14 Uhr cet";
127
+ var result = chrono.de.parse(text, new Date(2016, 3, 28))[0];
128
+ expect(result.text).toBe(text)
129
+ expect(result.start.isCertain('timezoneOffset')).toBe(true)
130
+ expect(result.start.get('timezoneOffset')).toBe(60)
103
131
 
104
- testSingleCase(chrono.de, 'am Freitag um 14 Uhr cet', new Date(2016, 3, 28), (result, text) => {
105
-
106
- expect(result.text).toBe(text);
107
- expect(result.start.isCertain('timezoneOffset')).toBe(true);
108
- expect(result.start.get('timezoneOffset')).toBe(60);
109
- });
110
-
111
-
112
- testSingleCase(chrono.de, 'am Freitag um 14 Uhr cetteln wir etwas an', new Date(2016, 3, 28), (result, text) => {
113
-
114
- expect(result.text).toBe('am Freitag um 14 Uhr');
115
- expect(result.start.isCertain('timezoneOffset')).toBe(false);
116
- expect(!result.start.get('timezoneOffset')).not.toBeNull();
117
- });
118
132
 
133
+ var text = "am Freitag um 14 Uhr cetteln wir etwas an";
134
+ var result = chrono.de.parse(text, new Date(2016, 3, 28))[0];
135
+ expect(result.text).toBe('am Freitag um 14 Uhr');
136
+ expect(result.start.isCertain('timezoneOffset')).toBe(false)
137
+ expect(!result.start.get('timezoneOffset')).not.toBeNull()
119
138
  });
120
139
 
121
140
 
122
141
  test("Test - Random date + time expression", function() {
123
142
 
124
- testSingleCase(chrono.de, 'um 12', (result, text) => {
125
-
126
- expect(result.text).toBe(text);
127
- });
128
-
129
- testSingleCase(chrono.de, 'am Mittag', (result, text) => {
130
-
131
- expect(result.text).toBe('Mittag');
132
- expect(result.start.get('hour')).toBe(12);
133
- });
134
-
135
- testSingleCase(chrono.de, 'mittags', (result, text) => {
136
-
137
- expect(result.text).toBe(text);
138
- expect(result.start.get('hour')).toBe(12);
139
- });
140
-
141
- testSingleCase(chrono.de, 'um Mitternacht', (result, text) => {
142
-
143
- expect(result.text).toBe(text);
144
- expect(result.start.get('hour')).toBe(0);
145
- });
146
-
147
- testSingleCase(chrono.de, 'mitternachts', (result, text) => {
148
-
149
- expect(result.text).toBe(text);
150
- expect(result.start.get('hour')).toBe(0);
151
- });
143
+ var text = "um 12";
144
+ var result = chrono.de.parse(text)[0];
145
+ expect(result.text).toBe(text)
146
+
147
+ var text = "am Mittag";
148
+ var result = chrono.de.parse(text)[0];
149
+ expect(result.text).toBe('Mittag');
150
+ expect(result.start.get('hour')).toBe(12);
151
+
152
+ var text = "mittags";
153
+ var result = chrono.de.parse(text)[0];
154
+ expect(result.text).toBe(text);
155
+ expect(result.start.get('hour')).toBe(12);
156
+
157
+ var text = "um Mitternacht";
158
+ var result = chrono.de.parse(text)[0];
159
+ expect(result.text).toBe(text);
160
+ expect(result.start.get('hour')).toBe(0);
161
+
162
+ var text = "mitternachts";
163
+ var result = chrono.de.parse(text)[0];
164
+ expect(result.text).toBe(text);
165
+ expect(result.start.get('hour')).toBe(0);
152
166
  });