chrono-node 2.9.2 → 2.10.0

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 (142) hide show
  1. package/dist/cjs/results.js +15 -9
  2. package/dist/cjs/results.js.map +1 -1
  3. package/dist/esm/results.js +14 -9
  4. package/dist/esm/results.js.map +1 -1
  5. package/package.json +5 -1
  6. package/src/results.ts +40 -9
  7. package/test/calculation_duration.test.ts +0 -165
  8. package/test/calculation_weekdays.test.ts +0 -133
  9. package/test/de/de_casual.test.ts +0 -336
  10. package/test/de/de_dash.test.ts +0 -32
  11. package/test/de/de_month_name_little_endian.test.ts +0 -273
  12. package/test/de/de_time_exp.test.ts +0 -223
  13. package/test/de/de_time_units_casual_relative.test.ts +0 -120
  14. package/test/de/de_time_units_within.test.ts +0 -119
  15. package/test/de/de_weekday.test.ts +0 -158
  16. package/test/de/de_year.test.ts +0 -147
  17. package/test/debugging.test.ts +0 -17
  18. package/test/en/en.test.ts +0 -191
  19. package/test/en/en_casual.test.ts +0 -425
  20. package/test/en/en_inter_std.test.ts +0 -118
  21. package/test/en/en_merging_relative_dates.test.ts +0 -50
  22. package/test/en/en_month.test.ts +0 -339
  23. package/test/en/en_month_name_little_endian.test.ts +0 -448
  24. package/test/en/en_month_name_middle_endian.test.ts +0 -386
  25. package/test/en/en_performance.test.ts +0 -26
  26. package/test/en/en_relative.test.ts +0 -393
  27. package/test/en/en_slash.test.ts +0 -284
  28. package/test/en/en_time_exp.test.ts +0 -535
  29. package/test/en/en_time_units_ago.test.ts +0 -357
  30. package/test/en/en_time_units_casual_relative.test.ts +0 -186
  31. package/test/en/en_time_units_later.test.ts +0 -361
  32. package/test/en/en_time_units_within.test.ts +0 -417
  33. package/test/en/en_timezone_exp.test.ts +0 -410
  34. package/test/en/en_weekday.test.ts +0 -573
  35. package/test/en/en_year.test.ts +0 -138
  36. package/test/en/en_year_month_day.test.ts +0 -101
  37. package/test/en/negative_cases.test.ts +0 -99
  38. package/test/es/es_casual.test.ts +0 -175
  39. package/test/es/es_month_name_little_endian.test.ts +0 -217
  40. package/test/es/es_slash.test.ts +0 -26
  41. package/test/es/es_time_exp.test.ts +0 -175
  42. package/test/es/es_time_units_within.test.ts +0 -119
  43. package/test/fi/fi_casual.test.ts +0 -99
  44. package/test/fi/fi_casual_time.test.ts +0 -56
  45. package/test/fi/fi_month_name_little_endian.test.ts +0 -50
  46. package/test/fi/fi_time_exp.test.ts +0 -39
  47. package/test/fi/fi_time_units_ago.test.ts +0 -93
  48. package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
  49. package/test/fi/fi_time_units_within.test.ts +0 -74
  50. package/test/fi/fi_weekday.test.ts +0 -90
  51. package/test/fr/fr_casual.test.ts +0 -314
  52. package/test/fr/fr_little_endian.test.ts +0 -320
  53. package/test/fr/fr_slash.test.ts +0 -49
  54. package/test/fr/fr_time_exp.test.ts +0 -588
  55. package/test/fr/fr_time_units_ago.test.ts +0 -103
  56. package/test/fr/fr_time_units_casual_relative.test.ts +0 -114
  57. package/test/fr/fr_time_units_within.test.ts +0 -129
  58. package/test/fr/fr_weekday.test.ts +0 -130
  59. package/test/it/it_casual.test.ts +0 -81
  60. package/test/it/it_month_name_little_endian.test.ts +0 -28
  61. package/test/it/it_month_name_middle_endian.test.ts +0 -39
  62. package/test/it/it_time_exp.test.ts +0 -84
  63. package/test/it/it_weekday.test.ts +0 -37
  64. package/test/it/it_year_month_day.test.ts +0 -41
  65. package/test/ja/ja_casual.test.ts +0 -73
  66. package/test/ja/ja_slash_date_format.test.ts +0 -60
  67. package/test/ja/ja_standard.test.ts +0 -235
  68. package/test/ja/ja_time_exp.test.ts +0 -305
  69. package/test/ja/ja_weekday.test.ts +0 -183
  70. package/test/nl/nl_casual.test.ts +0 -408
  71. package/test/nl/nl_month.test.ts +0 -205
  72. package/test/nl/nl_month_name_little_endian.test.ts +0 -358
  73. package/test/nl/nl_relative.test.ts +0 -242
  74. package/test/nl/nl_slash.test.ts +0 -206
  75. package/test/nl/nl_time_exp.test.ts +0 -79
  76. package/test/nl/nl_time_units_ago.test.ts +0 -243
  77. package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
  78. package/test/nl/nl_time_units_later.test.ts +0 -250
  79. package/test/nl/nl_time_units_within.test.ts +0 -225
  80. package/test/nl/nl_weekday.test.ts +0 -216
  81. package/test/pt/pt_casual.test.ts +0 -175
  82. package/test/pt/pt_month_name_little_endian.test.ts +0 -217
  83. package/test/pt/pt_slash.test.ts +0 -26
  84. package/test/pt/pt_time_exp.test.ts +0 -175
  85. package/test/result.test.ts +0 -283
  86. package/test/ru/ru_casual.test.ts +0 -159
  87. package/test/ru/ru_month.test.ts +0 -70
  88. package/test/ru/ru_month_name_little_endian.test.ts +0 -145
  89. package/test/ru/ru_relative.test.ts +0 -107
  90. package/test/ru/ru_time_exp.test.ts +0 -111
  91. package/test/ru/ru_time_units_ago.test.ts +0 -48
  92. package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
  93. package/test/ru/ru_time_units_within.test.ts +0 -16
  94. package/test/ru/ru_weekday.test.ts +0 -52
  95. package/test/sv/sv_casual.test.ts +0 -87
  96. package/test/sv/sv_month_name_little_endian.test.ts +0 -48
  97. package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
  98. package/test/sv/sv_weekday.test.ts +0 -68
  99. package/test/system.test.ts +0 -247
  100. package/test/system_timezone.test.ts +0 -284
  101. package/test/test_util.ts +0 -135
  102. package/test/uk/uk_casual.test.ts +0 -153
  103. package/test/uk/uk_month.test.ts +0 -70
  104. package/test/uk/uk_month_name_little_endian.test.ts +0 -148
  105. package/test/uk/uk_relative.test.ts +0 -107
  106. package/test/uk/uk_time_exp.test.ts +0 -111
  107. package/test/uk/uk_time_units_ago.test.ts +0 -48
  108. package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
  109. package/test/uk/uk_time_units_within.test.ts +0 -23
  110. package/test/uk/uk_weekday.test.ts +0 -52
  111. package/test/vi/vi_casual.test.ts +0 -84
  112. package/test/vi/vi_casual_time.test.ts +0 -77
  113. package/test/vi/vi_date_range.test.ts +0 -61
  114. package/test/vi/vi_forward_date.test.ts +0 -45
  115. package/test/vi/vi_month_year.test.ts +0 -40
  116. package/test/vi/vi_negative_cases.test.ts +0 -60
  117. package/test/vi/vi_slash.test.ts +0 -36
  118. package/test/vi/vi_standard.test.ts +0 -86
  119. package/test/vi/vi_strict.test.ts +0 -67
  120. package/test/vi/vi_time_exp.test.ts +0 -99
  121. package/test/vi/vi_time_units_ago.test.ts +0 -56
  122. package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
  123. package/test/vi/vi_time_units_later.test.ts +0 -43
  124. package/test/vi/vi_time_units_within.test.ts +0 -24
  125. package/test/vi/vi_weekday.test.ts +0 -77
  126. package/test/vi/vi_year.test.ts +0 -42
  127. package/test/zh/hans/zh_hans_ago.test.ts +0 -58
  128. package/test/zh/hans/zh_hans_casual.test.ts +0 -242
  129. package/test/zh/hans/zh_hans_date.test.ts +0 -116
  130. package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
  131. package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
  132. package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
  133. package/test/zh/hant/zh_hant_ago.test.ts +0 -58
  134. package/test/zh/hant/zh_hant_casual.test.ts +0 -260
  135. package/test/zh/hant/zh_hant_date.test.ts +0 -116
  136. package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
  137. package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
  138. package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
  139. package/test/zh/zh.test.ts +0 -36
  140. package/tsconfig.build.esm.json +0 -8
  141. package/tsconfig.build.json +0 -10
  142. package/tsconfig.json +0 -29
@@ -1,357 +0,0 @@
1
- import * as chrono from "../../src/";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
- import { Meridiem } from "../../src/";
4
-
5
- test("Test - Single Expression", function () {
6
- testSingleCase(chrono, "5 days ago, we did something", new Date(2012, 7, 10), (result) => {
7
- expect(result.start).not.toBeNull();
8
- expect(result.start.get("year")).toBe(2012);
9
- expect(result.start.get("month")).toBe(8);
10
- expect(result.start.get("day")).toBe(5);
11
-
12
- expect(result.index).toBe(0);
13
- expect(result.text).toBe("5 days ago");
14
- expect(result.tags()).toContain("result/relativeDate");
15
-
16
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
17
- });
18
-
19
- testSingleCase(chrono, "10 days ago, we did something", new Date(2012, 7, 10), (result) => {
20
- expect(result.start).not.toBeNull();
21
- expect(result.start.get("year")).toBe(2012);
22
- expect(result.start.get("month")).toBe(7);
23
- expect(result.start.get("day")).toBe(31);
24
-
25
- expect(result.index).toBe(0);
26
- expect(result.text).toBe("10 days ago");
27
-
28
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 31));
29
- });
30
-
31
- testSingleCase(chrono, "15 minute ago", new Date(2012, 7, 10, 12, 14), (result) => {
32
- expect(result.index).toBe(0);
33
- expect(result.text).toBe("15 minute ago");
34
- expect(result.tags()).toContain("result/relativeDate");
35
- expect(result.tags()).toContain("result/relativeDateAndTime");
36
-
37
- expect(result.start.get("hour")).toBe(11);
38
- expect(result.start.get("minute")).toBe(59);
39
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
40
-
41
- expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
42
- });
43
-
44
- testSingleCase(chrono, "15 minute earlier", new Date(2012, 7, 10, 12, 14), (result) => {
45
- expect(result.index).toBe(0);
46
- expect(result.text).toBe("15 minute earlier");
47
- expect(result.start.get("hour")).toBe(11);
48
- expect(result.start.get("minute")).toBe(59);
49
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
50
-
51
- expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
52
- });
53
-
54
- testSingleCase(chrono, "15 minute before", new Date(2012, 7, 10, 12, 14), (result) => {
55
- expect(result.index).toBe(0);
56
- expect(result.text).toBe("15 minute before");
57
- expect(result.start.get("hour")).toBe(11);
58
- expect(result.start.get("minute")).toBe(59);
59
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
60
-
61
- expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
62
- });
63
-
64
- testSingleCase(chrono, " 12 hours ago", new Date(2012, 7, 10, 12, 14), (result) => {
65
- expect(result.index).toBe(3);
66
- expect(result.text).toBe("12 hours ago");
67
- expect(result.start.get("hour")).toBe(0);
68
- expect(result.start.get("minute")).toBe(14);
69
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
70
-
71
- expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
72
- });
73
-
74
- testSingleCase(chrono, "1h ago", new Date(2012, 7, 10, 12, 14), (result) => {
75
- expect(result.index).toBe(0);
76
- expect(result.text).toBe("1h ago");
77
- expect(result.start.get("hour")).toBe(11);
78
- expect(result.start.get("minute")).toBe(14);
79
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
80
- });
81
-
82
- testSingleCase(chrono, "1hr ago", new Date(2012, 7, 10, 12, 14), (result) => {
83
- expect(result.index).toBe(0);
84
- expect(result.text).toBe("1hr ago");
85
- expect(result.start.get("hour")).toBe(11);
86
- expect(result.start.get("minute")).toBe(14);
87
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
88
- });
89
-
90
- testSingleCase(chrono, " half an hour ago", new Date(2012, 7, 10, 12, 14), (result) => {
91
- expect(result.index).toBe(3);
92
- expect(result.text).toBe("half an hour ago");
93
- expect(result.start.get("hour")).toBe(11);
94
- expect(result.start.get("minute")).toBe(44);
95
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
96
-
97
- expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 44));
98
- });
99
-
100
- testSingleCase(chrono, "12 hours ago I did something", new Date(2012, 7, 10, 12, 14), (result) => {
101
- expect(result.index).toBe(0);
102
- expect(result.text).toBe("12 hours ago");
103
- expect(result.start.get("hour")).toBe(0);
104
- expect(result.start.get("minute")).toBe(14);
105
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
106
-
107
- expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
108
- });
109
-
110
- testSingleCase(chrono, "12 seconds ago I did something", new Date(2012, 7, 10, 12, 14), (result) => {
111
- expect(result.index).toBe(0);
112
- expect(result.text).toBe("12 seconds ago");
113
- expect(result.start.get("hour")).toBe(12);
114
- expect(result.start.get("minute")).toBe(13);
115
- expect(result.start.get("second")).toBe(48);
116
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
117
-
118
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 48));
119
- });
120
-
121
- testSingleCase(chrono, "three seconds ago I did something", new Date(2012, 7, 10, 12, 14), (result) => {
122
- expect(result.index).toBe(0);
123
- expect(result.text).toBe("three seconds ago");
124
- expect(result.start.get("hour")).toBe(12);
125
- expect(result.start.get("minute")).toBe(13);
126
- expect(result.start.get("second")).toBe(57);
127
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
128
-
129
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13, 57));
130
- });
131
-
132
- testSingleCase(chrono, "5 Days ago, we did something", new Date(2012, 7, 10), (result) => {
133
- expect(result.start).not.toBeNull();
134
- expect(result.start.get("year")).toBe(2012);
135
- expect(result.start.get("month")).toBe(8);
136
- expect(result.start.get("day")).toBe(5);
137
-
138
- expect(result.index).toBe(0);
139
- expect(result.text).toBe("5 Days ago");
140
-
141
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
142
- });
143
-
144
- testSingleCase(chrono, " half An hour ago", new Date(2012, 7, 10, 12, 14), (result) => {
145
- expect(result.index).toBe(3);
146
- expect(result.text).toBe("half An hour ago");
147
- expect(result.start.get("hour")).toBe(11);
148
- expect(result.start.get("minute")).toBe(44);
149
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
150
-
151
- expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 44));
152
- });
153
-
154
- testSingleCase(chrono, "A days ago, we did something", new Date(2012, 7, 10), (result) => {
155
- expect(result.start).not.toBeNull();
156
- expect(result.start.get("year")).toBe(2012);
157
- expect(result.start.get("month")).toBe(8);
158
- expect(result.start.get("day")).toBe(9);
159
-
160
- expect(result.index).toBe(0);
161
- expect(result.text).toBe("A days ago");
162
-
163
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 9));
164
- });
165
-
166
- testSingleCase(chrono, "a min before", new Date(2012, 7, 10, 12, 14), (result) => {
167
- expect(result.index).toBe(0);
168
- expect(result.text).toBe("a min before");
169
- expect(result.start.get("hour")).toBe(12);
170
- expect(result.start.get("minute")).toBe(13);
171
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
172
-
173
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13));
174
- });
175
-
176
- testSingleCase(chrono, "the min before", new Date(2012, 7, 10, 12, 14), (result) => {
177
- expect(result.index).toBe(0);
178
- expect(result.text).toBe("the min before");
179
- expect(result.start.get("hour")).toBe(12);
180
- expect(result.start.get("minute")).toBe(13);
181
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
182
-
183
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 13));
184
- });
185
- });
186
-
187
- test("Test - Single Expression (Casual)", function () {
188
- testSingleCase(chrono, "5 months ago, we did something", new Date(2012, 10 - 1, 10), (result) => {
189
- expect(result.start).not.toBeNull();
190
- expect(result.start.get("year")).toBe(2012);
191
- expect(result.start.get("month")).toBe(5);
192
- expect(result.start.get("day")).toBe(10);
193
-
194
- expect(result.index).toBe(0);
195
- expect(result.text).toBe("5 months ago");
196
-
197
- expect(result.start).toBeDate(new Date(2012, 5 - 1, 10));
198
- });
199
-
200
- testSingleCase(chrono, "5 years ago, we did something", new Date(2012, 8 - 1, 10), (result) => {
201
- expect(result.start).not.toBeNull();
202
- expect(result.start.get("year")).toBe(2007);
203
- expect(result.start.get("month")).toBe(8);
204
- expect(result.start.get("day")).toBe(10);
205
-
206
- expect(result.index).toBe(0);
207
- expect(result.text).toBe("5 years ago");
208
-
209
- expect(result.start).toBeDate(new Date(2007, 8 - 1, 10));
210
- });
211
-
212
- testSingleCase(chrono, "a week ago, we did something", new Date(2012, 8 - 1, 3), (result) => {
213
- expect(result.start).not.toBeNull();
214
- expect(result.start.get("year")).toBe(2012);
215
- expect(result.start.get("month")).toBe(7);
216
- expect(result.start.get("day")).toBe(27);
217
-
218
- expect(result.index).toBe(0);
219
- expect(result.text).toBe("a week ago");
220
-
221
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 27));
222
- });
223
-
224
- testSingleCase(chrono, "a few days ago, we did something", new Date(2012, 8 - 1, 3), (result) => {
225
- expect(result.start).not.toBeNull();
226
- expect(result.start.get("year")).toBe(2012);
227
- expect(result.start.get("month")).toBe(7);
228
- expect(result.start.get("day")).toBe(31);
229
-
230
- expect(result.index).toBe(0);
231
- expect(result.text).toBe("a few days ago");
232
-
233
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 31));
234
- });
235
- });
236
-
237
- test("Test - Nested time ago", function () {
238
- testSingleCase(chrono, "15 hours 29 min ago", new Date(2012, 7, 10, 22, 30), (result) => {
239
- expect(result.text).toBe("15 hours 29 min ago");
240
- expect(result.start.get("day")).toBe(10);
241
- expect(result.start.get("hour")).toBe(7);
242
- expect(result.start.get("minute")).toBe(1);
243
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
244
- });
245
-
246
- testSingleCase(chrono, "1 day 21 hours ago ", new Date(2012, 7, 10, 22, 30), (result) => {
247
- expect(result.text).toBe("1 day 21 hours ago");
248
- expect(result.start.get("day")).toBe(9);
249
- expect(result.start.get("hour")).toBe(1);
250
- expect(result.start.get("minute")).toBe(30);
251
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
252
- });
253
-
254
- testSingleCase(chrono, "1d 21 h 25m ago ", new Date(2012, 7, 10, 22, 30), (result) => {
255
- expect(result.text).toBe("1d 21 h 25m ago");
256
- expect(result.start.get("day")).toBe(9);
257
- expect(result.start.get("hour")).toBe(1);
258
- expect(result.start.get("minute")).toBe(5);
259
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
260
- });
261
-
262
- testSingleCase(chrono, "3 min 49 sec ago ", new Date(2012, 7, 10, 22, 30), (result) => {
263
- expect(result.text).toBe("3 min 49 sec ago");
264
- expect(result.start.get("day")).toBe(10);
265
- expect(result.start.get("hour")).toBe(22);
266
- expect(result.start.get("minute")).toBe(26);
267
- expect(result.start.get("second")).toBe(11);
268
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
269
- });
270
-
271
- testSingleCase(chrono, "3m 49s ago ", new Date(2012, 7, 10, 22, 30), (result) => {
272
- expect(result.text).toBe("3m 49s ago");
273
- expect(result.start.get("day")).toBe(10);
274
- expect(result.start.get("hour")).toBe(22);
275
- expect(result.start.get("minute")).toBe(26);
276
- expect(result.start.get("second")).toBe(11);
277
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
278
- });
279
- });
280
-
281
- test("Test - Before with reference", () => {
282
- testSingleCase(chrono, "2 day before today", new Date(2012, 7, 10), (result) => {
283
- expect(result.start.get("year")).toBe(2012);
284
- expect(result.start.get("month")).toBe(8);
285
- expect(result.start.get("day")).toBe(8);
286
- });
287
-
288
- testSingleCase(chrono, "the day before yesterday", new Date(2012, 7, 10), (result) => {
289
- expect(result.start.get("year")).toBe(2012);
290
- expect(result.start.get("month")).toBe(8);
291
- expect(result.start.get("day")).toBe(8);
292
- });
293
-
294
- testSingleCase(chrono, "2 day before yesterday", new Date(2012, 7, 10), (result) => {
295
- expect(result.start.get("year")).toBe(2012);
296
- expect(result.start.get("month")).toBe(8);
297
- expect(result.start.get("day")).toBe(7);
298
- });
299
-
300
- testSingleCase(chrono, "a week before yesterday", new Date(2012, 7, 10), (result) => {
301
- expect(result.start.get("year")).toBe(2012);
302
- expect(result.start.get("month")).toBe(8);
303
- expect(result.start.get("day")).toBe(2);
304
- });
305
- });
306
-
307
- test("Test - Strict mode", function () {
308
- testSingleCase(chrono.strict, "5 minutes ago", new Date(2012, 7, 10, 12, 14), (result, text) => {
309
- expect(result.start.get("hour")).toBe(12);
310
- expect(result.start.get("minute")).toBe(9);
311
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 9));
312
- });
313
-
314
- testUnexpectedResult(chrono.strict, "5m ago", new Date(2012, 7, 10, 12, 14));
315
- testUnexpectedResult(chrono.strict, "5hr before", new Date(2012, 7, 10, 12, 14));
316
- testUnexpectedResult(chrono.strict, "5 h ago", new Date(2012, 7, 10, 12, 14));
317
- });
318
-
319
- test("Test - Forward date", () => {
320
- // Note that it is actually impossible for X ago to be "forward dates".
321
- // In such situation, we still return the correct actual extracted dates and make sure the option doesn't affect the results.
322
- const reference = new Date("2024-09-10T12:00:00");
323
- const options = { forwardDate: true };
324
-
325
- testSingleCase(chrono, "2 days ago", reference, options, (result, text) => {
326
- expect(result.start.get("year")).toBe(2024);
327
- expect(result.start.get("month")).toBe(9);
328
- expect(result.start.get("day")).toBe(8);
329
- });
330
-
331
- testSingleCase(chrono, "2 weeks ago", reference, options, (result, text) => {
332
- expect(result.start.get("year")).toBe(2024);
333
- expect(result.start.get("month")).toBe(8);
334
- expect(result.start.get("day")).toBe(27);
335
- });
336
-
337
- testSingleCase(chrono, "2 months ago", reference, options, (result, text) => {
338
- expect(result.start.get("year")).toBe(2024);
339
- expect(result.start.get("month")).toBe(7);
340
- expect(result.start.get("day")).toBe(10);
341
- });
342
-
343
- testSingleCase(chrono, "2 years ago", reference, options, (result, text) => {
344
- expect(result.start.get("year")).toBe(2022);
345
- expect(result.start.get("month")).toBe(9);
346
- expect(result.start.get("day")).toBe(10);
347
- });
348
- });
349
-
350
- test("Test - Negative cases", function () {
351
- testUnexpectedResult(chrono, "15 hours 29 min");
352
- testUnexpectedResult(chrono, "a few hour");
353
- testUnexpectedResult(chrono, "5 days");
354
-
355
- testUnexpectedResult(chrono, "am ago");
356
- testUnexpectedResult(chrono, "them ago");
357
- });
@@ -1,186 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
- import ENTimeUnitCasualRelativeFormatParser from "../../src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser";
4
-
5
- test("Test - Positive time units", () => {
6
- testSingleCase(chrono, "next 2 weeks", new Date(2016, 10 - 1, 1, 12), (result, text) => {
7
- expect(result.text).toBe(text);
8
- expect(result.tags()).toContain("result/relativeDate");
9
-
10
- expect(result.start.get("year")).toBe(2016);
11
- expect(result.start.get("month")).toBe(10);
12
- expect(result.start.get("day")).toBe(15);
13
- });
14
-
15
- testSingleCase(chrono, "next 2 days", new Date(2016, 10 - 1, 1, 12), (result, text) => {
16
- expect(result.text).toBe(text);
17
- expect(result.start.get("year")).toBe(2016);
18
- expect(result.start.get("month")).toBe(10);
19
- expect(result.start.get("day")).toBe(3);
20
- expect(result.start.get("hour")).toBe(12);
21
- });
22
-
23
- testSingleCase(chrono, "next two years", new Date(2016, 10 - 1, 1, 12), (result, text) => {
24
- expect(result.text).toBe(text);
25
- expect(result.start.get("year")).toBe(2018);
26
- expect(result.start.get("month")).toBe(10);
27
- expect(result.start.get("day")).toBe(1);
28
- expect(result.start.get("hour")).toBe(12);
29
- });
30
-
31
- testSingleCase(chrono, "next 2 weeks 3 days", new Date(2016, 10 - 1, 1, 12), (result, text) => {
32
- expect(result.text).toBe(text);
33
- expect(result.start.get("year")).toBe(2016);
34
- expect(result.start.get("month")).toBe(10);
35
- expect(result.start.get("day")).toBe(18);
36
- expect(result.start.get("hour")).toBe(12);
37
- });
38
-
39
- testSingleCase(chrono, "after a year", new Date(2016, 10 - 1, 1, 12), (result, text) => {
40
- expect(result.text).toBe(text);
41
- expect(result.start.get("year")).toBe(2017);
42
- expect(result.start.get("month")).toBe(10);
43
- expect(result.start.get("day")).toBe(1);
44
- expect(result.start.get("hour")).toBe(12);
45
- });
46
-
47
- testSingleCase(chrono, "after an hour", new Date(2016, 10 - 1, 1, 15), (result, text) => {
48
- expect(result.text).toBe(text);
49
- expect(result.tags()).toContain("result/relativeDate");
50
- expect(result.tags()).toContain("result/relativeDateAndTime");
51
-
52
- expect(result.start.get("year")).toBe(2016);
53
- expect(result.start.get("month")).toBe(10);
54
- expect(result.start.get("day")).toBe(1);
55
- expect(result.start.get("hour")).toBe(16);
56
- });
57
- });
58
-
59
- test("Test - Negative time units", () => {
60
- testSingleCase(chrono, "last 2 weeks", new Date(2016, 10 - 1, 1, 12), (result, text) => {
61
- expect(result.text).toBe(text);
62
- expect(result.start.get("year")).toBe(2016);
63
- expect(result.start.get("month")).toBe(9);
64
- expect(result.start.get("day")).toBe(17);
65
- expect(result.start.get("hour")).toBe(12);
66
- });
67
-
68
- testSingleCase(chrono, "last two weeks", new Date(2016, 10 - 1, 1, 12), (result, text) => {
69
- expect(result.text).toBe(text);
70
- expect(result.start.get("year")).toBe(2016);
71
- expect(result.start.get("month")).toBe(9);
72
- expect(result.start.get("day")).toBe(17);
73
- expect(result.start.get("hour")).toBe(12);
74
- });
75
-
76
- testSingleCase(chrono, "past 2 days", new Date(2016, 10 - 1, 1, 12), (result, text) => {
77
- expect(result.text).toBe(text);
78
- expect(result.start.get("year")).toBe(2016);
79
- expect(result.start.get("month")).toBe(9);
80
- expect(result.start.get("day")).toBe(29);
81
- expect(result.start.get("hour")).toBe(12);
82
- });
83
-
84
- testSingleCase(chrono, "+2 months, 5 days", new Date(2016, 10 - 1, 1, 12), (result, text) => {
85
- expect(result.text).toBe(text);
86
- expect(result.start.get("year")).toBe(2016);
87
- expect(result.start.get("month")).toBe(12);
88
- expect(result.start.get("day")).toBe(6);
89
- expect(result.start.get("hour")).toBe(12);
90
- });
91
- });
92
-
93
- test("Test - Plus '+' sign", () => {
94
- testSingleCase(chrono.casual, "+15 minutes", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
95
- expect(result.text).toBe(text);
96
- expect(result.start.get("hour")).toBe(12);
97
- expect(result.start.get("minute")).toBe(29);
98
-
99
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
100
- });
101
-
102
- testSingleCase(chrono.casual, "+15min", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
103
- expect(result.text).toBe(text);
104
- expect(result.start.get("hour")).toBe(12);
105
- expect(result.start.get("minute")).toBe(29);
106
-
107
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
108
- });
109
-
110
- testSingleCase(chrono.casual, "+1 day 2 hour", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
111
- expect(result.text).toBe(text);
112
- expect(result.start.get("day")).toBe(11);
113
- expect(result.start.get("hour")).toBe(14);
114
- expect(result.start.get("minute")).toBe(14);
115
-
116
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 11, 14, 14));
117
- });
118
-
119
- testSingleCase(chrono.casual, "+1m", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
120
- expect(result.text).toBe(text);
121
- expect(result.start.get("hour")).toBe(12);
122
- expect(result.start.get("minute")).toBe(15);
123
-
124
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 15));
125
- });
126
- });
127
-
128
- test("Test - Minus '-' sign", () => {
129
- testSingleCase(chrono.casual, "-3y", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
130
- expect(result.text).toBe(text);
131
- expect(result.start.get("year")).toBe(2012);
132
- expect(result.start.get("month")).toBe(7);
133
- expect(result.start.get("day")).toBe(10);
134
- expect(result.start.get("hour")).toBe(12);
135
- expect(result.start.get("minute")).toBe(14);
136
-
137
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 14));
138
- });
139
-
140
- testSingleCase(chrono, "-2hr5min", new Date(2016, 10 - 1, 1, 12), (result, text) => {
141
- expect(result.text).toBe(text);
142
- expect(result.start.get("year")).toBe(2016);
143
- expect(result.start.get("month")).toBe(10);
144
- expect(result.start.get("day")).toBe(1);
145
- expect(result.start.get("hour")).toBe(9);
146
- expect(result.start.get("minute")).toBe(55);
147
- });
148
-
149
- testSingleCase(chrono, "-5d 00", new Date(2016, 10 - 1, 1, 12), (result, text) => {
150
- expect(result.text).toBe(text);
151
- expect(result.start.get("year")).toBe(2016);
152
- expect(result.start.get("month")).toBe(9);
153
- expect(result.start.get("day")).toBe(26);
154
- expect(result.start.get("hour")).toBe(0);
155
- expect(result.start.get("minute")).toBe(0);
156
-
157
- expect(result.start).toBeDate(new Date(2016, 9 - 1, 26, 0, 0));
158
- });
159
- });
160
-
161
- test("Test - Without custom parser without abbreviations", function () {
162
- const custom = chrono.en.strict.clone();
163
- custom.parsers.push(new ENTimeUnitCasualRelativeFormatParser(false));
164
-
165
- testUnexpectedResult(custom, "-3y");
166
- testUnexpectedResult(custom, "last 2m");
167
-
168
- testSingleCase(custom, "-2 hours 5 minutes", new Date(2016, 10 - 1, 1, 12), (result, text) => {
169
- expect(result.text).toBe(text);
170
- expect(result.start.get("year")).toBe(2016);
171
- expect(result.start.get("month")).toBe(10);
172
- expect(result.start.get("day")).toBe(1);
173
- expect(result.start.get("hour")).toBe(9);
174
- expect(result.start.get("minute")).toBe(55);
175
- });
176
- });
177
-
178
- test("Test - Negative cases", () => {
179
- testUnexpectedResult(chrono.casual, "3y", new Date(2015, 7 - 1, 10, 12, 14));
180
- testUnexpectedResult(chrono.casual, "1 m", new Date(2015, 7 - 1, 10, 12, 14));
181
- testUnexpectedResult(chrono.casual, "the day", new Date(2015, 7 - 1, 10, 12, 14));
182
- testUnexpectedResult(chrono.casual, "a day", new Date(2015, 7 - 1, 10, 12, 14));
183
-
184
- testUnexpectedResult(chrono, "+am");
185
- testUnexpectedResult(chrono, "+them");
186
- });