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,66 +1,51 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase } from '../test_util';
3
-
4
- test('Test - Random text', function() {
5
-
6
- testSingleCase(chrono, '...Donnerstag, 15. Dezember 2011 Best Available Rate ', (result) => {
7
-
8
- expect(result.start.get('day')).toBe(15);
9
- expect(result.start.get('month')).toBe(12);
10
- expect(result.start.get('year')).toBe(2011);
11
- });
12
-
13
- testSingleCase(chrono, '9:00 bis 17:00, Dienstag, 20. Mai 2013', (result) => {
14
-
15
- expect(result.start.get('hour')).toBe(9);
16
- expect(result.end.get('hour')).toBe(17);
17
- expect(result.end.get('meridiem')).toBe(1);
18
- expect(result.end.get('day')).toBe(20);
19
- expect(result.end.get('month')).toBe(5);
20
- expect(result.end.get('year')).toBe(2013)
21
- });
1
+ var chrono = require('../../src/chrono');
2
+ test('Test - Random text', function() {
3
+
4
+ var text = "...Donnerstag, 15. Dezember 2011 Best Available Rate "
5
+ var results = chrono.parse(text);
6
+ expect(results.length).toBeGreaterThanOrEqual(1)
7
+ expect(results[0].start.get('day')).toBe(15)
8
+ expect(results[0].start.get('month')).toBe(12)
9
+ expect(results[0].start.get('year')).toBe(2011)
10
+
11
+
12
+ var text = "9:00 bis 17:00, Dienstag, 20. Mai 2013"
13
+ var results = chrono.parse(text);
14
+ expect(results.length).toBe(1)
15
+ expect(results[0].start.get('hour')).toBe(9)
16
+ expect(results[0].end.get('hour')).toBe(17)
17
+ expect(results[0].end.get('meridiem')).toBe(1)
18
+ expect(results[0].end.get('day')).toBe(20)
19
+ expect(results[0].end.get('month')).toBe(5)
20
+ expect(results[0].end.get('year')).toBe(2013)
22
21
  });
23
22
 
24
23
 
25
- test('Test - Formal German support in default setting', function() {
24
+ test('Test - German support in default setting', function() {
26
25
 
27
26
  // German's formal text should be handle by default casual and strict
28
27
 
29
- const text = "9:00 bis 17:00, Dienstag, 20. Mai 2013";
30
-
31
- {
32
- const results = chrono.parse(text);
33
- expect(results.length).toBe(1);
34
- }
28
+ var text = "9:00 bis 17:00, Dienstag, 20. Mai 2013";
35
29
 
36
- {
37
- const results = chrono.strict.parse(text);
38
- expect(results.length).toBe(1);
39
- }
30
+ var results = chrono.parse(text);
31
+ expect(results.length).toBe(1);
40
32
 
41
- {
42
- const results = chrono.de.parse(text);
43
- expect(results.length).toBe(1);
44
- }
45
- });
33
+ var results = chrono.strict.parse(text);
34
+ expect(results.length).toBe(1);
46
35
 
36
+ var results = chrono.de.parse(text);
37
+ expect(results.length).toBe(1);
47
38
 
48
- test('Test - Not apply German casual keywords in default setting', function() {
39
+ // German's casual text (e.g. "do" is abbreviation of "Donnerstag")should be skipped
49
40
 
50
- const text = "Do";
41
+ var text = "Do";
51
42
 
52
- {
53
- const results = chrono.parse(text);
54
- expect(results.length).toBe(0);
55
- }
43
+ var results = chrono.parse(text);
44
+ expect(results.length).toBe(0);
56
45
 
57
- {
58
- const results = chrono.strict.parse(text);
59
- expect(results.length).toBe(0);
60
- }
46
+ var results = chrono.strict.parse(text);
47
+ expect(results.length).toBe(0);
61
48
 
62
- {
63
- const results = chrono.de.parse(text);
64
- expect(results.length).toBe(1);
65
- }
49
+ var results = chrono.de.parse(text);
50
+ expect(results.length).toBe(1);
66
51
  });
@@ -1,10 +1,14 @@
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
5
 
7
- testSingleCase(chrono.de, 'Die Deadline ist jetzt', new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6
+ var text = "Die Deadline ist jetzt";
7
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 8, 9, 10, 11));
8
+ expect(results.length).toBe(1);
9
+
10
+ var result = results[0];
11
+ if(result){
8
12
  expect(result.index).toBe(17);
9
13
  expect(result.text).toBe('jetzt');
10
14
 
@@ -17,11 +21,18 @@ test("Test - Single Expression", function() {
17
21
  expect(result.start.get('second')).toBe(10);
18
22
  expect(result.start.get('millisecond')).toBe(11);
19
23
 
20
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
21
- });
24
+ var resultDate = result.start.date();
25
+ var expectDate = new Date(2012, 7, 10, 8, 9, 10, 11);
26
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
27
+ }
28
+
22
29
 
30
+ var text = "Die Deadline ist heute";
31
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
32
+ expect(results.length).toBe(1);
23
33
 
24
- testSingleCase(chrono.de, 'Die Deadline ist heute', new Date(2012, 7, 10, 12), (result) => {
34
+ var result = results[0];
35
+ if(result){
25
36
  expect(result.index).toBe(17);
26
37
  expect(result.text).toBe('heute');
27
38
 
@@ -30,11 +41,18 @@ test("Test - Single Expression", function() {
30
41
  expect(result.start.get('month')).toBe(8);
31
42
  expect(result.start.get('day')).toBe(10);
32
43
 
33
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
34
- });
44
+ var resultDate = result.start.date();
45
+ var expectDate = new Date(2012, 7, 10, 12);
46
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
47
+ }
48
+
35
49
 
50
+ var text = "Die Deadline ist morgen";
51
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
52
+ expect(results.length).toBe(1);
36
53
 
37
- testSingleCase(chrono.de, 'Die Deadline ist morgen', new Date(2012, 7, 10, 12), (result) => {
54
+ var result = results[0];
55
+ if(result){
38
56
  expect(result.index).toBe(17);
39
57
  expect(result.text).toBe('morgen');
40
58
 
@@ -43,16 +61,30 @@ test("Test - Single Expression", function() {
43
61
  expect(result.start.get('month')).toBe(8);
44
62
  expect(result.start.get('day')).toBe(11);
45
63
 
46
- expect(result.start).toBeDate(new Date(2012, 7, 11, 12));
47
- });
64
+ var resultDate = result.start.date();
65
+ var expectDate = new Date(2012, 7, 11, 12);
66
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
67
+ }
48
68
 
49
69
  // Say.."Tomorrow" in the late night (1 AM)
50
- testSingleCase(chrono.de, 'Die Deadline ist morgen', new Date(2012, 7, 10, 1), (result) => {
51
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
52
- });
70
+ var text = "Die Deadline ist morgen";
71
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 1));
72
+ expect(results.length).toBe(1);
73
+
74
+ var result = results[0];
75
+ if(result){
76
+ var resultDate = result.start.date();
77
+ var expectDate = new Date(2012, 7, 10, 12);
78
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
79
+ }
80
+
53
81
 
82
+ var text = "Die Deadline war gestern";
83
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
84
+ expect(results.length).toBe(1);
54
85
 
55
- testSingleCase(chrono.de, 'Die Deadline war gestern', new Date(2012, 7, 10, 12), (result) => {
86
+ var result = results[0];
87
+ if(result){
56
88
  expect(result.index).toBe(17);
57
89
  expect(result.text).toBe('gestern');
58
90
 
@@ -61,11 +93,18 @@ test("Test - Single Expression", function() {
61
93
  expect(result.start.get('month')).toBe(8);
62
94
  expect(result.start.get('day')).toBe(9);
63
95
 
64
- expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
65
- });
96
+ var resultDate = result.start.date();
97
+ var expectDate = new Date(2012, 7, 9, 12);
98
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
99
+ }
66
100
 
67
101
 
68
- testSingleCase(chrono.de, 'Die Deadline war letzte Nacht ', new Date(2012, 7, 10, 12), (result) => {
102
+ var text = "Die Deadline war letzte Nacht ";
103
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
104
+ expect(results.length).toBe(1);
105
+
106
+ var result = results[0];
107
+ if(result){
69
108
  expect(result.index).toBe(17);
70
109
  expect(result.text).toBe('letzte Nacht');
71
110
 
@@ -75,11 +114,18 @@ test("Test - Single Expression", function() {
75
114
  expect(result.start.get('day')).toBe(9);
76
115
  expect(result.start.get('hour')).toBe(0);
77
116
 
78
- expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
79
- });
117
+ var resultDate = result.start.date();
118
+ var expectDate = new Date(2012, 7, 9, 0);
119
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
120
+ }
121
+
80
122
 
123
+ var text = "Die Deadline war gestern Nacht ";
124
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
125
+ expect(results.length).toBe(1);
81
126
 
82
- testSingleCase(chrono.de, 'Die Deadline war gestern Nacht ', new Date(2012, 7, 10, 12), (result) => {
127
+ var result = results[0];
128
+ if(result){
83
129
  expect(result.index).toBe(17);
84
130
  expect(result.text).toBe('gestern Nacht');
85
131
 
@@ -89,11 +135,18 @@ test("Test - Single Expression", function() {
89
135
  expect(result.start.get('day')).toBe(9);
90
136
  expect(result.start.get('hour')).toBe(0);
91
137
 
92
- expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
93
- });
138
+ var resultDate = result.start.date();
139
+ var expectDate = new Date(2012, 7, 9, 0);
140
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
141
+ }
142
+
94
143
 
144
+ var text = "Die Deadline war heute Morgen ";
145
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
146
+ expect(results.length).toBe(1);
95
147
 
96
- testSingleCase(chrono.de, 'Die Deadline war heute Morgen ', new Date(2012, 7, 10, 12), (result) => {
148
+ var result = results[0];
149
+ if(result){
97
150
  expect(result.index).toBe(17);
98
151
  expect(result.text).toBe('heute Morgen');
99
152
 
@@ -103,11 +156,18 @@ test("Test - Single Expression", function() {
103
156
  expect(result.start.get('day')).toBe(10);
104
157
  expect(result.start.get('hour')).toBe(6);
105
158
 
106
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
107
- });
159
+ var resultDate = result.start.date();
160
+ var expectDate = new Date(2012, 7, 10, 6);
161
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
162
+ }
108
163
 
109
164
 
110
- testSingleCase(chrono.de, 'Die Deadline war heute Nachmittag ', new Date(2012, 7, 10, 12), (result) => {
165
+ var text = "Die Deadline war heute Nachmittag ";
166
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
167
+ expect(results.length).toBe(1);
168
+
169
+ var result = results[0];
170
+ if(result){
111
171
  expect(result.index).toBe(17);
112
172
  expect(result.text).toBe('heute Nachmittag');
113
173
 
@@ -117,11 +177,18 @@ test("Test - Single Expression", function() {
117
177
  expect(result.start.get('day')).toBe(10);
118
178
  expect(result.start.get('hour')).toBe(15);
119
179
 
120
- expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
121
- });
180
+ var resultDate = result.start.date();
181
+ var expectDate = new Date(2012, 7, 10, 15);
182
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
183
+ }
184
+
122
185
 
186
+ var text = "Die Deadline war heute Abend ";
187
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
188
+ expect(results.length).toBe(1);
123
189
 
124
- testSingleCase(chrono.de, 'Die Deadline war heute Abend ', new Date(2012, 7, 10, 12), (result) => {
190
+ var result = results[0];
191
+ if(result){
125
192
  expect(result.index).toBe(17);
126
193
  expect(result.text).toBe('heute Abend');
127
194
 
@@ -131,15 +198,22 @@ test("Test - Single Expression", function() {
131
198
  expect(result.start.get('day')).toBe(10);
132
199
  expect(result.start.get('hour')).toBe(18);
133
200
 
134
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18));
135
- });
201
+ var resultDate = result.start.date();
202
+ var expectDate = new Date(2012, 7, 10, 18);
203
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
204
+ }
136
205
  });
137
206
 
138
207
 
139
208
  test("Test - Combined Expression", function() {
140
209
 
141
210
 
142
- testSingleCase(chrono.de, 'Die Deadline ist heute 17 Uhr', new Date(2012, 7, 10, 12), (result) => {
211
+ var text = "Die Deadline ist heute 17 Uhr";
212
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
213
+ expect(results.length).toBe(1);
214
+
215
+ var result = results[0];
216
+ if(result){
143
217
  expect(result.index).toBe(17);
144
218
  expect(result.text).toBe('heute 17 Uhr');
145
219
 
@@ -149,10 +223,17 @@ test("Test - Combined Expression", function() {
149
223
  expect(result.start.get('day')).toBe(10);
150
224
  expect(result.start.get('hour')).toBe(17);
151
225
 
152
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
153
- });
226
+ var resultDate = result.start.date();
227
+ var expectDate = new Date(2012, 7, 10, 17);
228
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
229
+ }
230
+
231
+ var text = "Die Deadline ist heute um 17 Uhr";
232
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
233
+ expect(results.length).toBe(1);
154
234
 
155
- testSingleCase(chrono.de, 'Die Deadline ist heute um 17 Uhr', new Date(2012, 7, 10, 12), (result) => {
235
+ var result = results[0];
236
+ if(result){
156
237
  expect(result.index).toBe(17);
157
238
  expect(result.text).toBe('heute um 17 Uhr');
158
239
 
@@ -162,14 +243,21 @@ test("Test - Combined Expression", function() {
162
243
  expect(result.start.get('day')).toBe(10);
163
244
  expect(result.start.get('hour')).toBe(17);
164
245
 
165
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
166
- });
246
+ var resultDate = result.start.date();
247
+ var expectDate = new Date(2012, 7, 10, 17);
248
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
249
+ }
167
250
  });
168
251
 
169
252
 
170
253
  test("Test - Casual date range", function() {
171
254
 
172
- testSingleCase(chrono.de, 'Der Event ist heute - nächsten Freitag', new Date(2012, 7, 4, 12), (result) => {
255
+ var text = "Der Event ist heute - nächsten Freitag";
256
+ var results = chrono.de.parse(text, new Date(2012, 7, 4, 12));
257
+ expect(results.length).toBe(1);
258
+
259
+ var result = results[0];
260
+ if(result){
173
261
  expect(result.index).toBe(14);
174
262
  expect(result.text).toBe('heute - nächsten Freitag');
175
263
 
@@ -179,7 +267,9 @@ test("Test - Casual date range", function() {
179
267
  expect(result.start.get('day')).toBe(4);
180
268
  expect(result.start.get('hour')).toBe(12);
181
269
 
182
- expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
270
+ var resultDate = result.start.date();
271
+ var expectDate = new Date(2012, 7, 4, 12);
272
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
183
273
 
184
274
 
185
275
  expect(result.end).not.toBeNull();
@@ -188,12 +278,19 @@ test("Test - Casual date range", function() {
188
278
  expect(result.end.get('day')).toBe(10);
189
279
  expect(result.end.get('hour')).toBe(12);
190
280
 
191
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12));
192
- });
281
+ var resultDate = result.end.date();
282
+ var expectDate = new Date(2012, 7, 10, 12);
283
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
284
+ }
193
285
 
194
286
 
195
287
 
196
- testSingleCase(chrono.de, 'Der Event ist heute - nächsten Freitag', new Date(2012, 7, 10, 12), (result) => {
288
+ var text = "Der Event ist heute - nächsten Freitag";
289
+ var results = chrono.de.parse(text, new Date(2012, 7, 10, 12));
290
+ expect(results.length).toBe(1);
291
+
292
+ var result = results[0];
293
+ if(result){
197
294
  expect(result.index).toBe(14);
198
295
  expect(result.text).toBe('heute - nächsten Freitag');
199
296
 
@@ -203,7 +300,9 @@ test("Test - Casual date range", function() {
203
300
  expect(result.start.get('day')).toBe(10);
204
301
  expect(result.start.get('hour')).toBe(12);
205
302
 
206
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
303
+ var resultDate = result.start.date();
304
+ var expectDate = new Date(2012, 7, 10, 12);
305
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
207
306
 
208
307
 
209
308
  expect(result.end).not.toBeNull();
@@ -212,8 +311,10 @@ test("Test - Casual date range", function() {
212
311
  expect(result.end.get('day')).toBe(17);
213
312
  expect(result.end.get('hour')).toBe(12);
214
313
 
215
- expect(result.end).toBeDate(new Date(2012, 7, 17, 12));
216
- });
314
+ var resultDate = result.end.date();
315
+ var expectDate = new Date(2012, 7, 17, 12);
316
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
317
+ }
217
318
  });
218
319
 
219
320
 
@@ -222,110 +323,110 @@ test("Test - Casual date range", function() {
222
323
 
223
324
  test('Test - Random text', function() {
224
325
 
225
- testSingleCase(chrono.de, 'heute Nacht', new Date(2012, 1-1, 1, 12), (result, text) => {
226
-
227
- expect(result.text).toBe(text);
228
- expect(result.start.get('year')).toBe(2012);
229
- expect(result.start.get('month')).toBe(1);
230
- expect(result.start.get('day')).toBe(1);
231
- expect(result.start.get('hour')).toBe(22);
232
- expect(result.start.get('meridiem') ).toBe(1);
233
- });
234
-
235
- testSingleCase(chrono.de, 'heute Nacht um 20 Uhr', new Date(2012, 1-1, 1, 12), (result, text) => {
236
-
237
- expect(result.text).toBe(text);
238
- expect(result.start.get('hour') ).toBe(20);
239
- expect(result.start.get('year') ).toBe(2012);
240
- expect(result.start.get('month')).toBe(1);
241
- expect(result.start.get('day') ).toBe(1);
242
- expect(result.start.get('meridiem') ).toBe(1);
243
- });
244
-
245
-
246
- testSingleCase(chrono.de, 'heute Abend um 8', new Date(2012, 1-1, 1, 12), (result, text) => {
247
-
248
- expect(result.text).toBe(text);
249
- expect(result.start.get('hour') ).toBe(20);
250
- expect(result.start.get('year') ).toBe(2012);
251
- expect(result.start.get('month')).toBe(1);
252
- expect(result.start.get('day') ).toBe(1);
253
- expect(result.start.get('meridiem') ).toBe(1);
254
- });
255
-
256
- testSingleCase(chrono.de, '8 Uhr abends', new Date(2012, 1-1, 1, 12), (result, text) => {
257
-
258
- expect(result.text).toBe(text);
259
- expect(result.start.get('hour') ).toBe(20);
260
- expect(result.start.get('year') ).toBe(2012);
261
- expect(result.start.get('month')).toBe(1);
262
- expect(result.start.get('day') ).toBe(1);
263
- expect(result.start.get('meridiem') ).toBe(1);
264
- });
265
-
266
-
267
- testSingleCase(chrono.de, 'Do', (result, text) => {
268
-
269
- expect(result.text).toBe(text);
270
- expect(result.start.get('weekday')).toBe(4);
271
- });
272
-
273
-
274
- testSingleCase(chrono.de, 'Donnerstag', (result, text) => {
275
-
276
- expect(result.text).toBe(text);
277
- expect(result.start.get('weekday')).toBe(4);
278
- });
279
-
280
- testSingleCase(chrono.de, 'gestern Nachmittag', new Date(2016, 10-1, 1), (result, text) => {
281
-
282
- expect(result.text).toBe(text);
283
- expect(result.start.get('year')).toBe(2016);
284
- expect(result.start.get('month')).toBe(9);
285
- expect(result.start.get('day')).toBe(30);
286
- expect(result.start.get('hour')).toBe(15);
287
- });
288
-
289
- testSingleCase(chrono.de, 'morgen Morgen', new Date(2016, 10-1, 1, 8), (result, text) => {
290
-
291
- expect(result.text).toBe(text);
292
- expect(result.start.get('year')).toBe(2016);
293
- expect(result.start.get('month')).toBe(10);
294
- expect(result.start.get('day')).toBe(2);
295
- expect(result.start.get('hour')).toBe(6);
296
- });
297
-
298
- testSingleCase(chrono.de, 'uebermorgen Abend', new Date(2016, 10-1, 1, 8), (result, text) => {
299
-
300
- expect(result.text).toBe(text);
301
- expect(result.start.get('year')).toBe(2016);
302
- expect(result.start.get('month')).toBe(10);
303
- expect(result.start.get('day')).toBe(3);
304
- expect(result.start.get('hour')).toBe(18);
305
- });
306
-
307
- testSingleCase(chrono.de, 'vorgestern Vormittag', new Date(2016, 10-1, 1), (result, text) => {
308
-
309
- expect(result.text).toBe(text);
310
- expect(result.start.get('year')).toBe(2016);
311
- expect(result.start.get('month')).toBe(9);
312
- expect(result.start.get('day')).toBe(29);
313
- expect(result.start.get('hour')).toBe(9);
314
- });
326
+ var text = "heute Nacht";
327
+ var result = chrono.de.parse(text, new Date(2012, 1-1, 1, 12))[0];
328
+ expect(result.text).toBe(text);
329
+ expect(result.start.get('year')).toBe(2012);
330
+ expect(result.start.get('month')).toBe(1);
331
+ expect(result.start.get('day')).toBe(1);
332
+ expect(result.start.get('hour')).toBe(22);
333
+ expect(result.start.get('meridiem') ).toBe(1);
334
+
335
+ var text = "heute Nacht um 20 Uhr";
336
+ var result = chrono.de.parse(text, new Date(2012, 1-1, 1, 12))[0];
337
+ expect(result.text).toBe(text);
338
+ expect(result.start.get('hour') ).toBe(20);
339
+ expect(result.start.get('year') ).toBe(2012);
340
+ expect(result.start.get('month')).toBe(1);
341
+ expect(result.start.get('day') ).toBe(1);
342
+ expect(result.start.get('meridiem') ).toBe(1);
343
+
344
+
345
+ var text = "heute Abend um 8";
346
+ var result = chrono.de.parse(text, new Date(2012, 1-1, 1, 12))[0];
347
+ expect(result.text).toBe(text);
348
+ expect(result.start.get('hour') ).toBe(20);
349
+ expect(result.start.get('year') ).toBe(2012);
350
+ expect(result.start.get('month')).toBe(1);
351
+ expect(result.start.get('day') ).toBe(1);
352
+ expect(result.start.get('meridiem') ).toBe(1);
353
+
354
+ var text = "8 Uhr abends";
355
+ var result = chrono.de.parse(text, new Date(2012, 1-1, 1, 12))[0];
356
+ expect(result.text).toBe(text);
357
+ expect(result.start.get('hour') ).toBe(20);
358
+ expect(result.start.get('year') ).toBe(2012);
359
+ expect(result.start.get('month')).toBe(1);
360
+ expect(result.start.get('day') ).toBe(1);
361
+ expect(result.start.get('meridiem') ).toBe(1);
362
+
363
+
364
+ var text = "Do";
365
+ var result = chrono.de.parse(text)[0];
366
+ expect(result.text).toBe(text);
367
+ expect(result.start.get('weekday')).toBe(4);
368
+
369
+
370
+ var text = "Donnerstag";
371
+ var result = chrono.de.parse(text)[0];
372
+ expect(result.text).toBe(text);
373
+ expect(result.start.get('weekday')).toBe(4);
374
+
375
+ var text = "gestern Nachmittag";
376
+ var result = chrono.de.parse(text, new Date(2016, 10-1, 1))[0];
377
+ expect(result.text).toBe(text);
378
+ expect(result.start.get('year')).toBe(2016);
379
+ expect(result.start.get('month')).toBe(9);
380
+ expect(result.start.get('day')).toBe(30);
381
+ expect(result.start.get('hour')).toBe(15);
382
+
383
+ var text = "morgen Morgen";
384
+ var result = chrono.de.parse(text, new Date(2016, 10-1, 1, 8))[0];
385
+ expect(result.text).toBe(text);
386
+ expect(result.start.get('year')).toBe(2016);
387
+ expect(result.start.get('month')).toBe(10);
388
+ expect(result.start.get('day')).toBe(2);
389
+ expect(result.start.get('hour')).toBe(6);
390
+
391
+ var text = "uebermorgen Abend";
392
+ var result = chrono.de.parse(text, new Date(2016, 10-1, 1, 8))[0];
393
+ expect(result.text).toBe(text);
394
+ expect(result.start.get('year')).toBe(2016);
395
+ expect(result.start.get('month')).toBe(10);
396
+ expect(result.start.get('day')).toBe(3);
397
+ expect(result.start.get('hour')).toBe(18);
398
+
399
+ var text = "vorgestern Vormittag";
400
+ var result = chrono.de.parse(text, new Date(2016, 10-1, 1))[0];
401
+ expect(result.text).toBe(text);
402
+ expect(result.start.get('year')).toBe(2016);
403
+ expect(result.start.get('month')).toBe(9);
404
+ expect(result.start.get('day')).toBe(29);
405
+ expect(result.start.get('hour')).toBe(9);
315
406
  });
316
407
 
317
408
 
318
409
  test('Test - Random negative text', function() {
319
410
 
320
- testUnexpectedResult(chrono.de, 'nicheute');
411
+ var text = "nicheute";
412
+ var results = chrono.de.parse(text);
413
+ expect(results.length).toBe(0);
321
414
 
322
415
 
323
- testUnexpectedResult(chrono.de, 'heutenicht');
416
+ var text = "heutenicht";
417
+ var results = chrono.de.parse(text);
418
+ expect(results.length).toBe(0);
324
419
 
325
- testUnexpectedResult(chrono.de, 'angestern');
420
+ var text = "angestern";
421
+ var results = chrono.de.parse(text);
422
+ expect(results.length).toBe(0);
326
423
 
327
- testUnexpectedResult(chrono.de, 'jetztig');
424
+ var text = "jetztig";
425
+ var results = chrono.de.parse(text);
426
+ expect(results.length).toBe(0);
328
427
 
329
- testUnexpectedResult(chrono.de, 'ljetztlich')
428
+ var text = "ljetztlich";
429
+ var results = chrono.de.parse(text);
430
+ expect(results.length).toBe(0)
330
431
 
331
432
  });
@@ -1,9 +1,6 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase } from '../test_util';
3
-
4
- test("Test - Should handle de dayname dd-mm-yy", () => {
5
-
6
- testSingleCase(chrono.strict, 'Freitag 30.12.16', (result) => {
7
- expect(result.text).toBe('Freitag 30.12.16')
8
- });
1
+ var chrono = require('../../src/chrono');
2
+ test("Test - Should handle de dayname dd-mm-yy", function() {
3
+ var text = "Freitag 30.12.16";
4
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
5
+ expect(results.length).toBe(1)
9
6
  });