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,206 +1,198 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase, testUnexpectedResult } from '../test_util';
3
-
4
-
1
+ var chrono = require('../../src/chrono');
5
2
  test("Test - fr - modifier mandatory just after", function() {
6
3
 
7
- testUnexpectedResult(chrono.fr, "le mois d'avril");
4
+ var text = "le mois d'avril";
5
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
6
+ expect(result).toBe(undefined);
8
7
 
9
- testUnexpectedResult(chrono.fr, "le mois d'avril prochain");
8
+ // The modifier "prochain" have to be just after the word "mois", to avoid this kind of cases we cannot handle
9
+ var text = "le mois d'avril prochain";
10
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
11
+ expect(result).toBe(undefined);
10
12
 
11
13
  });
12
14
 
13
15
  test("Test - fr - relative date", function() {
14
16
 
15
- testSingleCase(chrono.fr, 'la semaine prochaine', new Date(2017, 5-1, 12), (result, text) => {
16
-
17
- expect(result.text).toBe(text);
18
- expect(result.start.get('year')).toBe(2017);
19
- expect(result.start.get('month')).toBe(5);
20
- expect(result.start.get('day')).toBe(15);
21
- expect(result.start.get('hour')).toBe(0);
22
- expect(result.start.get('minute')).toBe(0);
23
- expect(result.start.get('second')).toBe(0);
24
-
25
- expect(result.end.get('year')).toBe(2017);
26
- expect(result.end.get('month')).toBe(5);
27
- expect(result.end.get('day')).toBe(21);
28
- expect(result.end.get('hour')).toBe(23);
29
- expect(result.end.get('minute')).toBe(59);
30
- expect(result.end.get('second')).toBe(59);
31
- });
32
-
33
-
34
- testSingleCase(chrono.fr, 'les 2 prochaines semaines', new Date(2017, 5-1, 12), (result, text) => {
35
-
36
- expect(result.text).toBe(text);
37
- expect(result.start.get('year')).toBe(2017);
38
- expect(result.start.get('month')).toBe(5);
39
- expect(result.start.get('day')).toBe(15);
40
- expect(result.start.get('hour')).toBe(0);
41
- expect(result.start.get('minute')).toBe(0);
42
- expect(result.start.get('second')).toBe(0);
43
-
44
- expect(result.end.get('year')).toBe(2017);
45
- expect(result.end.get('month')).toBe(5);
46
- expect(result.end.get('day')).toBe(28);
47
- expect(result.end.get('hour')).toBe(23);
48
- expect(result.end.get('minute')).toBe(59);
49
- expect(result.end.get('second')).toBe(59);
50
- });
51
-
52
-
53
- testSingleCase(chrono.fr, 'les trois prochaines semaines', new Date(2017, 5-1, 12), (result, text) => {
54
-
55
- expect(result.text).toBe(text);
56
- expect(result.start.get('year')).toBe(2017);
57
- expect(result.start.get('month')).toBe(5);
58
- expect(result.start.get('day')).toBe(15);
59
- expect(result.start.get('hour')).toBe(0);
60
- expect(result.start.get('minute')).toBe(0);
61
- expect(result.start.get('second')).toBe(0);
62
-
63
- expect(result.end.get('year')).toBe(2017);
64
- expect(result.end.get('month')).toBe(6);
65
- expect(result.end.get('day')).toBe(4);
66
- expect(result.end.get('hour')).toBe(23);
67
- expect(result.end.get('minute')).toBe(59);
68
- expect(result.end.get('second')).toBe(59);
69
- });
70
-
71
-
72
- testSingleCase(chrono.fr, 'le mois dernier', new Date(2017, 5-1, 12), (result, text) => {
73
-
74
- expect(result.text).toBe(text);
75
- expect(result.start.get('year')).toBe(2017);
76
- expect(result.start.get('month')).toBe(4);
77
- expect(result.start.get('day')).toBe(1);
78
- expect(result.start.get('hour')).toBe(0);
79
- expect(result.start.get('minute')).toBe(0);
80
- expect(result.start.get('second')).toBe(0);
81
-
82
- expect(result.end.get('year')).toBe(2017);
83
- expect(result.end.get('month')).toBe(4);
84
- expect(result.end.get('day')).toBe(30);
85
- expect(result.end.get('hour')).toBe(23);
86
- expect(result.end.get('minute')).toBe(59);
87
- expect(result.end.get('second')).toBe(59);
88
- });
89
-
90
-
91
- testSingleCase(chrono.fr, 'les 30 jours précédents', new Date(2017, 5-1, 12), (result, text) => {
92
-
93
- expect(result.text).toBe(text);
94
- expect(result.start.get('year')).toBe(2017);
95
- expect(result.start.get('month')).toBe(4);
96
- expect(result.start.get('day')).toBe(12);
97
- expect(result.start.get('hour')).toBe(0);
98
- expect(result.start.get('minute')).toBe(0);
99
- expect(result.start.get('second')).toBe(0);
100
-
101
- expect(result.end.get('year')).toBe(2017);
102
- expect(result.end.get('month')).toBe(5);
103
- expect(result.end.get('day')).toBe(11);
104
- expect(result.end.get('hour')).toBe(23);
105
- expect(result.end.get('minute')).toBe(59);
106
- expect(result.end.get('second')).toBe(59);
107
- });
108
-
109
-
110
- testSingleCase(chrono.fr, 'les 24 heures passées', new Date(2017, 5-1, 12, 11, 27), (result, text) => {
111
-
112
- expect(result.text).toBe(text);
113
- expect(result.start.get('year')).toBe(2017);
114
- expect(result.start.get('month')).toBe(5);
115
- expect(result.start.get('day')).toBe(11);
116
- expect(result.start.get('hour')).toBe(11);
117
- expect(result.start.get('minute')).toBe(0);
118
- expect(result.start.get('second')).toBe(0);
119
-
120
- expect(result.end.get('year')).toBe(2017);
121
- expect(result.end.get('month')).toBe(5);
122
- expect(result.end.get('day')).toBe(12);
123
- expect(result.end.get('hour')).toBe(10);
124
- expect(result.end.get('minute')).toBe(59);
125
- expect(result.end.get('second')).toBe(59);
126
- });
127
-
128
-
129
- testSingleCase(chrono.fr, 'les 90 secondes suivantes', new Date(2017, 5-1, 12, 11, 27, 0), (result, text) => {
130
-
131
- expect(result.text).toBe(text);
132
- expect(result.start.get('year')).toBe(2017);
133
- expect(result.start.get('month')).toBe(5);
134
- expect(result.start.get('day')).toBe(12);
135
- expect(result.start.get('hour')).toBe(11);
136
- expect(result.start.get('minute')).toBe(27);
137
- expect(result.start.get('second')).toBe(1);
138
- expect(result.start.get('millisecond')).toBe(0);
139
-
140
- expect(result.end.get('year')).toBe(2017);
141
- expect(result.end.get('month')).toBe(5);
142
- expect(result.end.get('day')).toBe(12);
143
- expect(result.end.get('hour')).toBe(11);
144
- expect(result.end.get('minute')).toBe(28);
145
- expect(result.end.get('second')).toBe(30);
146
- expect(result.end.get('millisecond')).toBe(999);
147
- });
148
-
149
-
150
- testSingleCase(chrono.fr, 'les huit dernieres minutes', new Date(2017, 5-1, 12, 11, 27), (result, text) => {
151
-
152
- expect(result.text).toBe(text);
153
- expect(result.start.get('year')).toBe(2017);
154
- expect(result.start.get('month')).toBe(5);
155
- expect(result.start.get('day')).toBe(12);
156
- expect(result.start.get('hour')).toBe(11);
157
- expect(result.start.get('minute')).toBe(19);
158
- expect(result.start.get('second')).toBe(0);
159
-
160
- expect(result.end.get('year')).toBe(2017);
161
- expect(result.end.get('month')).toBe(5);
162
- expect(result.end.get('day')).toBe(12);
163
- expect(result.end.get('hour')).toBe(11);
164
- expect(result.end.get('minute')).toBe(26);
165
- expect(result.end.get('second')).toBe(59);
166
- });
167
-
168
-
169
- testSingleCase(chrono.fr, 'le dernier trimestre', new Date(2017, 5-1, 12, 11, 27), (result, text) => {
170
-
171
- expect(result.text).toBe(text);
172
- expect(result.start.get('year')).toBe(2017);
173
- expect(result.start.get('month')).toBe(1);
174
- expect(result.start.get('day')).toBe(1);
175
- expect(result.start.get('hour')).toBe(0);
176
- expect(result.start.get('minute')).toBe(0);
177
- expect(result.start.get('second')).toBe(0);
178
-
179
- expect(result.end.get('year')).toBe(2017);
180
- expect(result.end.get('month')).toBe(3);
181
- expect(result.end.get('day')).toBe(31);
182
- expect(result.end.get('hour')).toBe(23);
183
- expect(result.end.get('minute')).toBe(59);
184
- expect(result.end.get('second')).toBe(59);
185
- });
186
-
187
-
188
- testSingleCase(chrono.fr, "l'année prochaine", new Date(2017, 5-1, 12, 11, 27), (result, text) => {
189
-
190
- expect(result.text).toBe(text);
191
- expect(result.start.get('year')).toBe(2018);
192
- expect(result.start.get('month')).toBe(1);
193
- expect(result.start.get('day')).toBe(1);
194
- expect(result.start.get('hour')).toBe(0);
195
- expect(result.start.get('minute')).toBe(0);
196
- expect(result.start.get('second')).toBe(0);
197
-
198
- expect(result.end.get('year')).toBe(2018);
199
- expect(result.end.get('month')).toBe(12);
200
- expect(result.end.get('day')).toBe(31);
201
- expect(result.end.get('hour')).toBe(23);
202
- expect(result.end.get('minute')).toBe(59);
203
- expect(result.end.get('second')).toBe(59);
204
- });
17
+ var text = "la semaine prochaine";
18
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
19
+ expect(result.text).toBe(text);
20
+ expect(result.start.get('year')).toBe(2017);
21
+ expect(result.start.get('month')).toBe(5);
22
+ expect(result.start.get('day')).toBe(15);
23
+ expect(result.start.get('hour')).toBe(0);
24
+ expect(result.start.get('minute')).toBe(0);
25
+ expect(result.start.get('second')).toBe(0);
26
+
27
+ expect(result.end.get('year')).toBe(2017);
28
+ expect(result.end.get('month')).toBe(5);
29
+ expect(result.end.get('day')).toBe(21);
30
+ expect(result.end.get('hour')).toBe(23);
31
+ expect(result.end.get('minute')).toBe(59);
32
+ expect(result.end.get('second')).toBe(59);
33
+
34
+
35
+ var text = "les 2 prochaines semaines";
36
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
37
+ expect(result.text).toBe(text);
38
+ expect(result.start.get('year')).toBe(2017);
39
+ expect(result.start.get('month')).toBe(5);
40
+ expect(result.start.get('day')).toBe(15);
41
+ expect(result.start.get('hour')).toBe(0);
42
+ expect(result.start.get('minute')).toBe(0);
43
+ expect(result.start.get('second')).toBe(0);
44
+
45
+ expect(result.end.get('year')).toBe(2017);
46
+ expect(result.end.get('month')).toBe(5);
47
+ expect(result.end.get('day')).toBe(28);
48
+ expect(result.end.get('hour')).toBe(23);
49
+ expect(result.end.get('minute')).toBe(59);
50
+ expect(result.end.get('second')).toBe(59);
51
+
52
+
53
+ var text = "les trois prochaines semaines";
54
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
55
+ expect(result.text).toBe(text);
56
+ expect(result.start.get('year')).toBe(2017);
57
+ expect(result.start.get('month')).toBe(5);
58
+ expect(result.start.get('day')).toBe(15);
59
+ expect(result.start.get('hour')).toBe(0);
60
+ expect(result.start.get('minute')).toBe(0);
61
+ expect(result.start.get('second')).toBe(0);
62
+
63
+ expect(result.end.get('year')).toBe(2017);
64
+ expect(result.end.get('month')).toBe(6);
65
+ expect(result.end.get('day')).toBe(4);
66
+ expect(result.end.get('hour')).toBe(23);
67
+ expect(result.end.get('minute')).toBe(59);
68
+ expect(result.end.get('second')).toBe(59);
69
+
70
+
71
+ var text = "le mois dernier";
72
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
73
+ expect(result.text).toBe(text);
74
+ expect(result.start.get('year')).toBe(2017);
75
+ expect(result.start.get('month')).toBe(4);
76
+ expect(result.start.get('day')).toBe(1);
77
+ expect(result.start.get('hour')).toBe(0);
78
+ expect(result.start.get('minute')).toBe(0);
79
+ expect(result.start.get('second')).toBe(0);
80
+
81
+ expect(result.end.get('year')).toBe(2017);
82
+ expect(result.end.get('month')).toBe(4);
83
+ expect(result.end.get('day')).toBe(30);
84
+ expect(result.end.get('hour')).toBe(23);
85
+ expect(result.end.get('minute')).toBe(59);
86
+ expect(result.end.get('second')).toBe(59);
87
+
88
+
89
+ var text = "les 30 jours précédents";
90
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12))[0];
91
+ expect(result.text).toBe(text);
92
+ expect(result.start.get('year')).toBe(2017);
93
+ expect(result.start.get('month')).toBe(4);
94
+ expect(result.start.get('day')).toBe(12);
95
+ expect(result.start.get('hour')).toBe(0);
96
+ expect(result.start.get('minute')).toBe(0);
97
+ expect(result.start.get('second')).toBe(0);
98
+
99
+ expect(result.end.get('year')).toBe(2017);
100
+ expect(result.end.get('month')).toBe(5);
101
+ expect(result.end.get('day')).toBe(11);
102
+ expect(result.end.get('hour')).toBe(23);
103
+ expect(result.end.get('minute')).toBe(59);
104
+ expect(result.end.get('second')).toBe(59);
105
+
106
+
107
+ var text = "les 24 heures passées";
108
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12, 11, 27))[0];
109
+ expect(result.text).toBe(text);
110
+ expect(result.start.get('year')).toBe(2017);
111
+ expect(result.start.get('month')).toBe(5);
112
+ expect(result.start.get('day')).toBe(11);
113
+ expect(result.start.get('hour')).toBe(11);
114
+ expect(result.start.get('minute')).toBe(0);
115
+ expect(result.start.get('second')).toBe(0);
116
+
117
+ expect(result.end.get('year')).toBe(2017);
118
+ expect(result.end.get('month')).toBe(5);
119
+ expect(result.end.get('day')).toBe(12);
120
+ expect(result.end.get('hour')).toBe(10);
121
+ expect(result.end.get('minute')).toBe(59);
122
+ expect(result.end.get('second')).toBe(59);
123
+
124
+
125
+ var text = "les 90 secondes suivantes";
126
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12, 11, 27, 0))[0];
127
+ expect(result.text).toBe(text);
128
+ expect(result.start.get('year')).toBe(2017);
129
+ expect(result.start.get('month')).toBe(5);
130
+ expect(result.start.get('day')).toBe(12);
131
+ expect(result.start.get('hour')).toBe(11);
132
+ expect(result.start.get('minute')).toBe(27);
133
+ expect(result.start.get('second')).toBe(1);
134
+ expect(result.start.get('millisecond')).toBe(0);
135
+
136
+ expect(result.end.get('year')).toBe(2017);
137
+ expect(result.end.get('month')).toBe(5);
138
+ expect(result.end.get('day')).toBe(12);
139
+ expect(result.end.get('hour')).toBe(11);
140
+ expect(result.end.get('minute')).toBe(28);
141
+ expect(result.end.get('second')).toBe(30);
142
+ expect(result.end.get('millisecond')).toBe(999);
143
+
144
+
145
+ var text = "les huit dernieres minutes"; // No accent should work too
146
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12, 11, 27))[0];
147
+ expect(result.text).toBe(text);
148
+ expect(result.start.get('year')).toBe(2017);
149
+ expect(result.start.get('month')).toBe(5);
150
+ expect(result.start.get('day')).toBe(12);
151
+ expect(result.start.get('hour')).toBe(11);
152
+ expect(result.start.get('minute')).toBe(19);
153
+ expect(result.start.get('second')).toBe(0);
154
+
155
+ expect(result.end.get('year')).toBe(2017);
156
+ expect(result.end.get('month')).toBe(5);
157
+ expect(result.end.get('day')).toBe(12);
158
+ expect(result.end.get('hour')).toBe(11);
159
+ expect(result.end.get('minute')).toBe(26);
160
+ expect(result.end.get('second')).toBe(59);
161
+
162
+
163
+ var text = "le dernier trimestre";
164
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12, 11, 27))[0];
165
+ expect(result.text).toBe(text);
166
+ expect(result.start.get('year')).toBe(2017);
167
+ expect(result.start.get('month')).toBe(1);
168
+ expect(result.start.get('day')).toBe(1);
169
+ expect(result.start.get('hour')).toBe(0);
170
+ expect(result.start.get('minute')).toBe(0);
171
+ expect(result.start.get('second')).toBe(0);
172
+
173
+ expect(result.end.get('year')).toBe(2017);
174
+ expect(result.end.get('month')).toBe(3);
175
+ expect(result.end.get('day')).toBe(31);
176
+ expect(result.end.get('hour')).toBe(23);
177
+ expect(result.end.get('minute')).toBe(59);
178
+ expect(result.end.get('second')).toBe(59);
179
+
180
+
181
+ var text = "l'année prochaine";
182
+ var result = chrono.fr.parse(text, new Date(2017, 5-1, 12, 11, 27))[0];
183
+ expect(result.text).toBe(text);
184
+ expect(result.start.get('year')).toBe(2018);
185
+ expect(result.start.get('month')).toBe(1);
186
+ expect(result.start.get('day')).toBe(1);
187
+ expect(result.start.get('hour')).toBe(0);
188
+ expect(result.start.get('minute')).toBe(0);
189
+ expect(result.start.get('second')).toBe(0);
190
+
191
+ expect(result.end.get('year')).toBe(2018);
192
+ expect(result.end.get('month')).toBe(12);
193
+ expect(result.end.get('day')).toBe(31);
194
+ expect(result.end.get('hour')).toBe(23);
195
+ expect(result.end.get('minute')).toBe(59);
196
+ expect(result.end.get('second')).toBe(59);
205
197
 
206
198
  });
@@ -1,9 +1,13 @@
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
- testSingleCase(chrono, 'lundi 8/2/2016', new Date(2012,7,10), (result) => {
5
+ var text = "lundi 8/2/2016";
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.start).not.toBeNull()
8
12
  expect(result.start.get('year')).toBe(2016)
9
13
  expect(result.start.get('month')).toBe(2)
@@ -12,10 +16,17 @@ test("Test - Single Expression", function() {
12
16
  expect(result.index).toBe(0)
13
17
  expect(result.text).toBe('lundi 8/2/2016')
14
18
 
15
- expect(result.start).toBeDate(new Date(2016, 2-1, 8, 12));
16
- });
19
+ var resultDate = result.start.date();
20
+ var expectDate = new Date(2016, 2-1, 8, 12);
21
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
22
+ }
23
+
24
+ var text = "le 8/2/2016";
25
+ var results = chrono.parse(text, new Date(2012,7,10));
26
+ expect(results.length).toBe(1)
17
27
 
18
- testSingleCase(chrono, 'le 8/2/2016', 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(2016)
21
32
  expect(result.start.get('month')).toBe(2)
@@ -24,10 +35,17 @@ test("Test - Single Expression", function() {
24
35
  expect(result.index).toBe(0)
25
36
  expect(result.text).toBe('le 8/2/2016')
26
37
 
27
- expect(result.start).toBeDate(new Date(2016, 2-1, 8, 12));
28
- });
38
+ var resultDate = result.start.date();
39
+ var expectDate = new Date(2016, 2-1, 8, 12);
40
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
41
+ }
29
42
 
30
- testSingleCase(chrono, 'le 8/2', new Date(2012,7,10), (result) => {
43
+ var text = "le 8/2";
44
+ var results = chrono.parse(text, new Date(2012,7,10));
45
+ expect(results.length).toBe(1);
46
+
47
+ var result = results[0];
48
+ if (result) {
31
49
  expect(result.start).not.toBeNull();
32
50
  expect(result.start.get('year')).toBe(2013);
33
51
  expect(result.start.get('month')).toBe(2);
@@ -36,11 +54,18 @@ test("Test - Single Expression", function() {
36
54
  expect(result.index).toBe(0);
37
55
  expect(result.text).toBe('le 8/2');
38
56
 
39
- expect(result.start).toBeDate(new Date(2013, 2-1, 8, 12));
40
- });
57
+ var resultDate = result.start.date();
58
+ var expectDate = new Date(2013, 2-1, 8, 12);
59
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
60
+ }
61
+
41
62
 
63
+ var text = "samedi 9/2/20 ";
64
+ var results = chrono.parse(text, new Date(2012,7,10));
65
+ expect(results.length).toBe(1);
42
66
 
43
- testSingleCase(chrono, 'samedi 9/2/20 ', new Date(2012,7,10), (result) => {
67
+ var result = results[0];
68
+ if (result) {
44
69
  expect(result.start).not.toBeNull();
45
70
  expect(result.start.get('year')).toBe(2020);
46
71
  expect(result.start.get('month')).toBe(2);
@@ -49,6 +74,8 @@ test("Test - Single Expression", function() {
49
74
  expect(result.index).toBe(0);
50
75
  expect(result.text).toBe('samedi 9/2/20');
51
76
 
52
- expect(result.start).toBeDate(new Date(2020, 2-1, 9, 12));
53
- });
77
+ var resultDate = result.start.date();
78
+ var expectDate = new Date(2020, 2-1, 9, 12);
79
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
80
+ }
54
81
  })
@@ -12,7 +12,9 @@ test("Test - Single Expression", function() {
12
12
  expect(result.index).toBe(0);
13
13
  expect(result.text).toBe('il y a 5 jours');
14
14
 
15
- expect(result.start).toBeDate(new Date(2012, 8-1, 5, 12));
15
+ var resultDate = result.start.date();
16
+ var expectDate = new Date(2012, 8-1, 5, 12);
17
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
16
18
  });
17
19
 
18
20
  testSingleCase(chrono.fr, "il y a 10 jours, on a fait quelque chose", new Date(2012,7,10), (result) => {
@@ -24,7 +26,9 @@ test("Test - Single Expression", function() {
24
26
  expect(result.index).toBe(0);
25
27
  expect(result.text).toBe('il y a 10 jours');
26
28
 
27
- expect(result.start).toBeDate(new Date(2012, 7-1, 31, 12));
29
+ var resultDate = result.start.date();
30
+ var expectDate = new Date(2012, 7-1, 31, 12);
31
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
28
32
  });
29
33
 
30
34
 
@@ -34,7 +38,9 @@ test("Test - Single Expression", function() {
34
38
  expect(result.start.get('hour')).toBe(11);
35
39
  expect(result.start.get('minute')).toBe(59);
36
40
 
37
- expect(result.start).toBeDate(new Date(2012,7,10,11,59));
41
+ var resultDate = result.start.date();
42
+ var expectDate = new Date(2012,7,10,11,59);
43
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
38
44
  });
39
45
 
40
46
 
@@ -44,7 +50,9 @@ test("Test - Single Expression", function() {
44
50
  expect(result.start.get('hour')).toBe(0);
45
51
  expect(result.start.get('minute')).toBe(14);
46
52
 
47
- expect(result.start).toBeDate(new Date(2012,7,10,0,14));
53
+ var resultDate = result.start.date();
54
+ var expectDate = new Date(2012,7,10,0,14);
55
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
48
56
  });
49
57
 
50
58
  testSingleCase(chrono.fr, " half an hour ago", new Date(2012,7,10,12,14), (result) => {
@@ -53,7 +61,9 @@ test("Test - Single Expression", function() {
53
61
  expect(result.start.get('hour')).toBe(11);
54
62
  expect(result.start.get('minute')).toBe(44);
55
63
 
56
- expect(result.start).toBeDate(new Date(2012,7,10,11,44));
64
+ var resultDate = result.start.date();
65
+ var expectDate = new Date(2012,7,10,11,44);
66
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
57
67
  });
58
68
 
59
69
 
@@ -63,7 +73,9 @@ test("Test - Single Expression", function() {
63
73
  expect(result.start.get('hour')).toBe(0);
64
74
  expect(result.start.get('minute')).toBe(14);
65
75
 
66
- expect(result.start).toBeDate(new Date(2012,7,10,0,14));
76
+ var resultDate = result.start.date();
77
+ var expectDate = new Date(2012,7,10,0,14);
78
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
67
79
  });
68
80
 
69
81
 
@@ -78,7 +90,9 @@ test("Test - Single Expression", function() {
78
90
  expect(result.index).toBe(0);
79
91
  expect(result.text).toBe('5 Days ago');
80
92
 
81
- expect(result.start).toBeDate(new Date(2012, 8-1, 5, 12));
93
+ var resultDate = result.start.date();
94
+ var expectDate = new Date(2012, 8-1, 5, 12);
95
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
82
96
  });
83
97
  });
84
98
 
@@ -94,7 +108,9 @@ test("Test - Single Expression (Casual)", function() {
94
108
  expect(result.index).toBe(0);
95
109
  expect(result.text).toBe('il y a 5 mois');
96
110
 
97
- expect(result.start).toBeDate(new Date(2012, 3-1, 10, 12));
111
+ var resultDate = result.start.date();
112
+ var expectDate = new Date(2012, 3-1, 10, 12);
113
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
98
114
  });
99
115
 
100
116
  testSingleCase(chrono.fr, "il y a 5 ans, on a fait quelque chose", new Date(2012, 8-1,10), (result) => {
@@ -106,7 +122,9 @@ test("Test - Single Expression (Casual)", function() {
106
122
  expect(result.index).toBe(0);
107
123
  expect(result.text).toBe('il y a 5 ans');
108
124
 
109
- expect(result.start).toBeDate(new Date(2007, 8-1, 10, 12));
125
+ var resultDate = result.start.date();
126
+ var expectDate = new Date(2007, 8-1, 10, 12);
127
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
110
128
  });
111
129
 
112
130
 
@@ -119,7 +137,9 @@ test("Test - Single Expression (Casual)", function() {
119
137
  expect(result.index).toBe(0);
120
138
  expect(result.text).toBe('il y a une semaine');
121
139
 
122
- expect(result.start).toBeDate(new Date(2012, 7-1, 27, 12));
140
+ var resultDate = result.start.date();
141
+ var expectDate = new Date(2012, 7-1, 27, 12);
142
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
123
143
  });
124
144
  });
125
145