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, 'On doit faire quelque chose dans 5 jours.', new Date(2012,7,10), (result) => {
5
+ var text = "On doit faire quelque chose dans 5 jours.";
6
+ var results = chrono.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.index).toBe(28);
8
12
  expect(result.text).toBe('dans 5 jours');
9
13
 
@@ -12,10 +16,19 @@ test("Test - Single Expression", function() {
12
16
  expect(result.start.get('month')).toBe(8);
13
17
  expect(result.start.get('day')).toBe(15);
14
18
 
15
- expect(result.start).toBeDate(new Date(2012, 8-1, 15, 12));
16
- });
19
+ var resultDate = result.start.date();
20
+ var expectDate = new Date(2012, 8-1, 15, 12);
21
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
22
+ }
23
+
24
+
17
25
 
18
- testSingleCase(chrono, 'On doit faire quelque chose dans cinq jours.', new Date(2012,7,10), (result) => {
26
+ var text = "On doit faire quelque chose dans cinq jours.";
27
+ var results = chrono.parse(text, new Date(2012,7,10));
28
+ expect(results.length).toBe(1);
29
+
30
+ var result = results[0];
31
+ if(result){
19
32
  expect(result.index).toBe(28);
20
33
  expect(result.text).toBe('dans cinq jours');
21
34
 
@@ -24,90 +37,190 @@ test("Test - Single Expression", function() {
24
37
  expect(result.start.get('month')).toBe(8);
25
38
  expect(result.start.get('day')).toBe(15);
26
39
 
27
- expect(result.start).toBeDate(new Date(2012, 8-1, 15, 12));
28
- });
40
+ var resultDate = result.start.date();
41
+ var expectDate = new Date(2012, 8-1, 15, 12);
42
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
43
+ }
44
+
45
+
46
+ var text = "we have to make something within 10 day";
47
+ var results = chrono.parse(text, new Date(2012,7,10));
48
+ expect(results.length).toBe(1);
49
+
50
+ var result = results[0];
51
+ if(result){
52
+ expect(result.index).toBe(26);
53
+ expect(result.text).toBe('within 10 day');
54
+
55
+ expect(result.start).not.toBeNull();
56
+ expect(result.start.get('year')).toBe(2012);
57
+ expect(result.start.get('month')).toBe(8);
58
+ expect(result.start.get('day')).toBe(20);
59
+
60
+ var resultDate = result.start.date();
61
+ var expectDate = new Date(2012, 8-1, 20, 12);
62
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
63
+ }
29
64
 
30
- testSingleCase(chrono, 'dans 5 minutes', new Date(2012,7,10,12,14), (result) => {
65
+
66
+ var text = "dans 5 minutes";
67
+ var results = chrono.parse(text, new Date(2012,7,10,12,14));
68
+ expect(results.length).toBe(1);
69
+
70
+ var result = results[0];
71
+ if(result){
31
72
  expect(result.index).toBe(0);
32
73
  expect(result.text).toBe('dans 5 minutes');
33
74
 
34
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
35
- });
75
+ var resultDate = result.start.date();
76
+ var expectDate = new Date(2012,7,10,12,19);
77
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
78
+ }
79
+
80
+ var text = "en 1 heure";
81
+ var results = chrono.parse(text, new Date(2012,7,10,12,14));
82
+ expect(results.length).toBe(1);
36
83
 
37
- testSingleCase(chrono, 'en 1 heure', new Date(2012,7,10,12,14), (result) => {
84
+ var result = results[0];
85
+ if(result){
38
86
  expect(result.index).toBe(0);
39
87
  expect(result.text).toBe('en 1 heure');
40
88
 
41
- expect(result.start).toBeDate(new Date(2012,7,10,13,14));
42
- });
89
+ var resultDate = result.start.date();
90
+ var expectDate = new Date(2012,7,10,13,14);
91
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
92
+ }
43
93
 
44
- testSingleCase(chrono, 'Dans 5 minutes je vais rentrer chez moi', new Date(2012,7,10,12,14), (result) => {
94
+ var text = "Dans 5 minutes je vais rentrer chez moi";
95
+ var results = chrono.parse(text, new Date(2012,7,10,12,14));
96
+ expect(results.length).toBe(1);
97
+
98
+ var result = results[0];
99
+ if(result){
45
100
  expect(result.index).toBe(0);
46
101
  expect(result.text).toBe('Dans 5 minutes');
47
102
 
48
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
49
- });
103
+ var resultDate = result.start.date();
104
+ var expectDate = new Date(2012,7,10,12,19);
105
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
106
+ }
107
+
108
+ var text = "Dans 5 secondes une voiture va bouger";
109
+ var results = chrono.parse(text, new Date(2012,7, 10, 12, 14));
110
+ expect(results.length).toBe(1);
50
111
 
51
- testSingleCase(chrono, 'Dans 5 secondes une voiture va bouger', new Date(2012,7, 10, 12, 14), (result) => {
112
+ var result = results[0];
113
+ if(result){
52
114
  expect(result.index).toBe(0);
53
115
  expect(result.text).toBe('Dans 5 secondes');
54
116
 
55
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 5));
56
- });
117
+ var resultDate = result.start.date();
118
+ var expectDate = new Date(2012, 7, 10, 12, 14, 5);
119
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
120
+ }
121
+
122
+ var text = "dans deux semaines";
123
+ var results = chrono.parse(text, new Date(2012, 7, 10, 12, 14));
124
+ expect(results.length).toBe(1);
57
125
 
58
- testSingleCase(chrono, 'dans deux semaines', new Date(2012, 7, 10, 12, 14), (result) => {
126
+ var result = results[0];
127
+ if(result){
59
128
  expect(result.index).toBe(0);
60
129
  expect(result.text).toBe('dans deux semaines');
61
130
 
62
- expect(result.start).toBeDate(new Date(2012, 7, 24, 12));
63
- });
131
+ var resultDate = result.start.date();
132
+ var expectDate = new Date(2012, 7, 24, 12);
133
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
134
+ }
64
135
 
65
136
 
66
- testSingleCase(chrono, 'dans un mois', new Date(2012, 7, 10, 12, 14), (result) => {
137
+ var text = "dans un mois";
138
+ var results = chrono.parse(text, new Date(2012, 7, 10, 12, 14));
139
+ expect(results.length).toBe(1);
140
+
141
+ var result = results[0];
142
+ if(result){
67
143
  expect(result.index).toBe(0);
68
144
  expect(result.text).toBe('dans un mois');
69
145
 
70
- expect(result.start).toBeDate(new Date(2012, 8, 10, 12));
71
- });
146
+ var resultDate = result.start.date();
147
+ var expectDate = new Date(2012, 8, 10, 12);
148
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
149
+ }
150
+
72
151
 
152
+ var text = "dans quelques mois";
153
+ var results = chrono.parse(text, new Date(2012, 7, 10, 12, 14));
154
+ expect(results.length).toBe(1);
73
155
 
74
- testSingleCase(chrono, 'dans quelques mois', new Date(2012, 7, 10, 12, 14), (result) => {
156
+ var result = results[0];
157
+ if(result){
75
158
  expect(result.index).toBe(0);
76
159
  expect(result.text).toBe('dans quelques mois');
77
160
 
78
- expect(result.start).toBeDate(new Date(2012, 10, 10, 12));
79
- });
161
+ var resultDate = result.start.date();
162
+ var expectDate = new Date(2012, 10, 10, 12);
163
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
164
+ }
165
+
80
166
 
167
+ var text = "en une année";
168
+ var results = chrono.parse(text, new Date(2012, 7, 10, 12, 14));
169
+ expect(results.length).toBe(1);
81
170
 
82
- testSingleCase(chrono, 'en une année', new Date(2012, 7, 10, 12, 14), (result) => {
171
+ var result = results[0];
172
+ if(result){
83
173
  expect(result.index).toBe(0);
84
174
  expect(result.text).toBe('en une année');
85
175
 
86
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12));
87
- });
176
+ var resultDate = result.start.date();
177
+ var expectDate = new Date(2013, 7, 10, 12);
178
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
179
+ }
88
180
 
89
181
 
90
- testSingleCase(chrono, 'dans une Année', new Date(2012, 7, 10, 12, 14), (result) => {
182
+ var text = "dans une Année";
183
+ var results = chrono.parse(text, new Date(2012, 7, 10, 12, 14));
184
+ expect(results.length).toBe(1);
185
+
186
+ var result = results[0];
187
+ if(result){
91
188
  expect(result.index).toBe(0);
92
189
  expect(result.text).toBe('dans une Année');
93
190
 
94
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12));
95
- });
191
+ var resultDate = result.start.date();
192
+ var expectDate = new Date(2013, 7, 10, 12);
193
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
194
+ }
195
+
196
+ var text = "Dans 5 Minutes une voiture doit être bougée";
197
+ var results = chrono.parse(text, new Date(2012,7,10,12,14));
198
+ expect(results.length).toBe(1);
96
199
 
97
- testSingleCase(chrono, 'Dans 5 Minutes une voiture doit être bougée', new Date(2012,7,10,12,14), (result) => {
200
+ var result = results[0];
201
+ if(result){
98
202
  expect(result.index).toBe(0);
99
203
  expect(result.text).toBe('Dans 5 Minutes');
100
204
 
101
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
102
- });
205
+ var resultDate = result.start.date();
206
+ var expectDate = new Date(2012,7,10,12,19);
207
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
208
+ }
209
+
103
210
 
211
+ var text = "Dans 5 mins une voiture doit être bougée";
212
+ var results = chrono.parse(text, new Date(2012,7,10,12,14));
213
+ expect(results.length).toBe(1);
104
214
 
105
- testSingleCase(chrono, 'Dans 5 mins une voiture doit être bougée', new Date(2012,7,10,12,14), (result) => {
215
+ var result = results[0];
216
+ if(result){
106
217
  expect(result.index).toBe(0);
107
218
  expect(result.text).toBe('Dans 5 mins');
108
219
 
109
- expect(result.start).toBeDate(new Date(2012,7,10,12,19));
110
- });
220
+ var resultDate = result.start.date();
221
+ var expectDate = new Date(2012,7,10,12,19);
222
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
223
+ }
111
224
 
112
225
 
113
226
  });
@@ -115,11 +228,17 @@ test("Test - Single Expression", function() {
115
228
 
116
229
  test("Test - Single Expression (Strict)", function() {
117
230
 
118
- testUnexpectedResult(chrono.strict, 'en une année', new Date(2012,7,10,12,14));
231
+ var text = "en une année";
232
+ var results = chrono.strict.parse(text, new Date(2012,7,10,12,14));
233
+ expect(results.length).toBe(0);
119
234
 
120
235
 
121
- testUnexpectedResult(chrono.strict, 'en quelques mois', new Date(2012, 8-1, 3))
236
+ var text = "en quelques mois";
237
+ var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
238
+ expect(results.length).toBe(0)
122
239
 
123
240
 
124
- testUnexpectedResult(chrono.strict, 'en quelques jours', new Date(2012, 8-1, 3))
241
+ var text = "en quelques jours";
242
+ var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
243
+ expect(results.length).toBe(0)
125
244
  });