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,425 +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", () => {
6
- testSingleCase(chrono.casual, "The Deadline is now", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
7
- expect(result.index).toBe(16);
8
- expect(result.text).toBe("now");
9
-
10
- expect(result.start).not.toBeNull();
11
- expect(result.start.get("year")).toBe(2012);
12
- expect(result.start.get("month")).toBe(8);
13
- expect(result.start.get("day")).toBe(10);
14
- expect(result.start.get("hour")).toBe(8);
15
- expect(result.start.get("minute")).toBe(9);
16
- expect(result.start.get("second")).toBe(10);
17
- expect(result.start.get("millisecond")).toBe(11);
18
- expect(result.start.get("timezoneOffset")).toBe(result.refDate.getTimezoneOffset() * -1);
19
-
20
- expect(result.start).toBeDate(result.refDate);
21
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
22
- });
23
-
24
- testSingleCase(
25
- chrono.casual,
26
- "The Deadline is now, without implicit local timezone",
27
- { instant: new Date(1637674343000), timezone: null },
28
- (result) => {
29
- expect(result.text).toBe("now");
30
- expect(result.start).toBeDate(new Date(1637674343000));
31
-
32
- // Although the timezone is not specified, we need to assume it is similar to the system default.
33
- // We also must allow the timezoneOffset to be overridden. Otherwise, the "now" meaning is incorrect.
34
- // expect(result.start.isCertain("timezoneOffset")).toBe(false);
35
- }
36
- );
37
-
38
- testSingleCase(chrono.casual, "The Deadline is today", new Date(2012, 7, 10, 14, 12), (result) => {
39
- expect(result.index).toBe(16);
40
- expect(result.text).toBe("today");
41
-
42
- expect(result.start).not.toBeNull();
43
- expect(result.start.get("year")).toBe(2012);
44
- expect(result.start.get("month")).toBe(8);
45
- expect(result.start.get("day")).toBe(10);
46
-
47
- expect(result.start).toBeDate(new Date(2012, 7, 10, 14, 12));
48
- });
49
-
50
- testSingleCase(chrono.casual, "The Deadline is Tomorrow", new Date(2012, 7, 10, 17, 10), (result) => {
51
- expect(result.index).toBe(16);
52
- expect(result.text).toBe("Tomorrow");
53
-
54
- expect(result.start).not.toBeNull();
55
- expect(result.start.get("year")).toBe(2012);
56
- expect(result.start.get("month")).toBe(8);
57
- expect(result.start.get("day")).toBe(11);
58
-
59
- expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
60
- });
61
-
62
- testSingleCase(chrono.casual, "The Deadline is Tomorrow", new Date(2012, 7, 10, 1), (result) => {
63
- expect(result.start).toBeDate(new Date(2012, 7, 11, 1));
64
- });
65
-
66
- testSingleCase(chrono.casual, "The Deadline was yesterday", new Date(2012, 7, 10, 12), (result) => {
67
- expect(result.index).toBe(17);
68
- expect(result.text).toBe("yesterday");
69
-
70
- expect(result.start).not.toBeNull();
71
- expect(result.start.get("year")).toBe(2012);
72
- expect(result.start.get("month")).toBe(8);
73
- expect(result.start.get("day")).toBe(9);
74
-
75
- expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
76
- });
77
-
78
- testSingleCase(chrono.casual, "The Deadline was last night ", new Date(2012, 7, 10, 12), (result) => {
79
- expect(result.index).toBe(17);
80
- expect(result.text).toBe("last night");
81
-
82
- expect(result.start).not.toBeNull();
83
- expect(result.start.get("year")).toBe(2012);
84
- expect(result.start.get("month")).toBe(8);
85
- expect(result.start.get("day")).toBe(9);
86
- expect(result.start.get("hour")).toBe(0);
87
-
88
- expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
89
- });
90
-
91
- testSingleCase(chrono.casual, "The Deadline was this morning ", new Date(2012, 7, 10, 12), (result) => {
92
- expect(result.index).toBe(17);
93
- expect(result.text).toBe("this morning");
94
-
95
- expect(result.start).not.toBeNull();
96
- expect(result.start.get("year")).toBe(2012);
97
- expect(result.start.get("month")).toBe(8);
98
- expect(result.start.get("day")).toBe(10);
99
- expect(result.start.get("hour")).toBe(6);
100
-
101
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
102
- });
103
-
104
- testSingleCase(chrono.casual, "The Deadline was this afternoon ", new Date(2012, 7, 10, 12), (result) => {
105
- expect(result.index).toBe(17);
106
- expect(result.text).toBe("this afternoon");
107
-
108
- expect(result.start).not.toBeNull();
109
- expect(result.start.get("year")).toBe(2012);
110
- expect(result.start.get("month")).toBe(8);
111
- expect(result.start.get("day")).toBe(10);
112
- expect(result.start.get("hour")).toBe(15);
113
-
114
- expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
115
- });
116
-
117
- testSingleCase(chrono.casual, "The Deadline was this evening ", new Date(2012, 7, 10, 12), (result) => {
118
- expect(result.index).toBe(17);
119
- expect(result.text).toBe("this evening");
120
-
121
- expect(result.start).not.toBeNull();
122
- expect(result.start.get("year")).toBe(2012);
123
- expect(result.start.get("month")).toBe(8);
124
- expect(result.start.get("day")).toBe(10);
125
- expect(result.start.get("hour")).toBe(20);
126
-
127
- expect(result.start).toBeDate(new Date(2012, 7, 10, 20));
128
- });
129
-
130
- testSingleCase(chrono.casual, "The Deadline is midnight ", new Date(2012, 7, 10, 12), (result) => {
131
- expect(result.text).toBe("midnight");
132
- expect(result.start.get("year")).toBe(2012);
133
- expect(result.start.get("month")).toBe(8);
134
- expect(result.start.get("day")).toBe(11);
135
- expect(result.start.get("hour")).toBe(0);
136
- });
137
-
138
- // "Midnight" at 0~2AM, assume it's the passed midnight
139
- testSingleCase(chrono.casual, "The Deadline was midnight ", new Date(2012, 8 - 1, 10, 1), (result) => {
140
- expect(result.text).toBe("midnight");
141
- expect(result.start.get("year")).toBe(2012);
142
- expect(result.start.get("month")).toBe(8);
143
- expect(result.start.get("day")).toBe(10);
144
- expect(result.start.get("hour")).toBe(0);
145
- expect(result.start.get("minute")).toBe(0);
146
- expect(result.start.get("second")).toBe(0);
147
- expect(result.start.get("millisecond")).toBe(0);
148
- });
149
-
150
- // "Midnight" at 0~2AM with forwardDate option, should be the next night
151
- testSingleCase(
152
- chrono.casual,
153
- "The Deadline was midnight ",
154
- new Date(2012, 8 - 1, 10, 1),
155
- { forwardDate: true },
156
- (result) => {
157
- expect(result.text).toBe("midnight");
158
- expect(result.start.get("year")).toBe(2012);
159
- expect(result.start.get("month")).toBe(8);
160
- expect(result.start.get("day")).toBe(11);
161
- expect(result.start.get("hour")).toBe(0);
162
- expect(result.start.get("minute")).toBe(0);
163
- expect(result.start.get("second")).toBe(0);
164
- expect(result.start.get("millisecond")).toBe(0);
165
- }
166
- );
167
- });
168
-
169
- test("Test - Combined Expression", () => {
170
- testSingleCase(chrono.casual, "The Deadline is today 5PM", new Date(2012, 7, 10, 12), (result) => {
171
- expect(result.index).toBe(16);
172
- expect(result.text).toBe("today 5PM");
173
-
174
- expect(result.start.get("year")).toBe(2012);
175
- expect(result.start.get("month")).toBe(8);
176
- expect(result.start.get("day")).toBe(10);
177
- expect(result.start.get("hour")).toBe(17);
178
-
179
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
180
- });
181
-
182
- testSingleCase(chrono.casual, "Tomorrow at noon", new Date(2012, 8 - 1, 10, 14), (result) => {
183
- expect(result.start.get("year")).toBe(2012);
184
- expect(result.start.get("month")).toBe(8);
185
- expect(result.start.get("day")).toBe(11);
186
- expect(result.start.get("hour")).toBe(12);
187
-
188
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 11, 12));
189
- });
190
- });
191
-
192
- test("Test - Casual date range", () => {
193
- testSingleCase(chrono.casual, "The event is today - next friday", new Date(2012, 7, 4, 12), (result) => {
194
- expect(result.index).toBe(13);
195
- expect(result.text).toBe("today - next friday");
196
-
197
- expect(result.start).not.toBeNull();
198
- expect(result.start.get("year")).toBe(2012);
199
- expect(result.start.get("month")).toBe(8);
200
- expect(result.start.get("day")).toBe(4);
201
- expect(result.start.get("hour")).toBe(12);
202
-
203
- expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
204
-
205
- expect(result.end).not.toBeNull();
206
- expect(result.end.get("year")).toBe(2012);
207
- expect(result.end.get("month")).toBe(8);
208
- expect(result.end.get("day")).toBe(10);
209
- expect(result.end.get("hour")).toBe(12);
210
-
211
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12));
212
- });
213
-
214
- testSingleCase(chrono.casual, "The event is today - next friday", new Date(2012, 7, 10, 12), (result) => {
215
- expect(result.index).toBe(13);
216
- expect(result.text).toBe("today - next friday");
217
-
218
- expect(result.start).not.toBeNull();
219
- expect(result.start.get("year")).toBe(2012);
220
- expect(result.start.get("month")).toBe(8);
221
- expect(result.start.get("day")).toBe(10);
222
- expect(result.start.get("hour")).toBe(12);
223
-
224
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
225
-
226
- expect(result.end).not.toBeNull();
227
- expect(result.end.get("year")).toBe(2012);
228
- expect(result.end.get("month")).toBe(8);
229
- expect(result.end.get("day")).toBe(17);
230
- expect(result.end.get("hour")).toBe(12);
231
-
232
- expect(result.end).toBeDate(new Date(2012, 7, 17, 12));
233
- });
234
- });
235
-
236
- test("Test - Casual time implication", () => {
237
- testSingleCase(
238
- chrono.casual,
239
- "annual leave from today morning to tomorrow",
240
- new Date(2012, 8 - 1, 4, 12),
241
- (result) => {
242
- expect(result.text).toBe("today morning to tomorrow");
243
-
244
- expect(result.start.get("month")).toBe(8);
245
- expect(result.start.get("day")).toBe(4);
246
- expect(result.start.get("hour")).toBe(6);
247
- expect(result.start.isCertain("hour")).toBe(false);
248
-
249
- expect(result.end.get("month")).toBe(8);
250
- expect(result.end.get("day")).toBe(5);
251
- expect(result.end.get("hour")).toBe(12);
252
- expect(result.end.isCertain("hour")).toBe(false);
253
- }
254
- );
255
-
256
- testSingleCase(
257
- chrono.casual,
258
- "annual leave from today to tomorrow afternoon",
259
- new Date(2012, 8 - 1, 4, 12),
260
- (result) => {
261
- expect(result.text).toBe("today to tomorrow afternoon");
262
-
263
- expect(result.start.get("month")).toBe(8);
264
- expect(result.start.get("day")).toBe(4);
265
- expect(result.start.get("hour")).toBe(12);
266
- expect(result.start.isCertain("hour")).toBe(false);
267
-
268
- expect(result.end.get("month")).toBe(8);
269
- expect(result.end.get("day")).toBe(5);
270
- expect(result.end.get("hour")).toBe(15);
271
- expect(result.end.isCertain("hour")).toBe(false);
272
- }
273
- );
274
- });
275
-
276
- test("Test - Random text", () => {
277
- testSingleCase(chrono, "tonight", new Date(2012, 1 - 1, 1, 12), (result, text) => {
278
- expect(result.text).toBe(text);
279
- expect(result.start.get("year")).toBe(2012);
280
- expect(result.start.get("month")).toBe(1);
281
- expect(result.start.get("day")).toBe(1);
282
- expect(result.start.get("hour")).toBe(22);
283
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
284
- });
285
-
286
- testSingleCase(chrono, "tonight 8pm", new Date(2012, 1 - 1, 1, 12), (result, text) => {
287
- expect(result.text).toBe(text);
288
- expect(result.start.get("hour")).toBe(20);
289
- expect(result.start.get("year")).toBe(2012);
290
- expect(result.start.get("month")).toBe(1);
291
- expect(result.start.get("day")).toBe(1);
292
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
293
- });
294
-
295
- testSingleCase(chrono, "tonight at 8", new Date(2012, 1 - 1, 1, 12), (result, text) => {
296
- expect(result.text).toBe(text);
297
- expect(result.start.get("hour")).toBe(20);
298
- expect(result.start.get("year")).toBe(2012);
299
- expect(result.start.get("month")).toBe(1);
300
- expect(result.start.get("day")).toBe(1);
301
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
302
- });
303
-
304
- testSingleCase(chrono, "tomorrow before 4pm", new Date(2012, 1 - 1, 1, 12), (result, text) => {
305
- expect(result.text).toBe(text);
306
- expect(result.start.get("hour")).toBe(16);
307
- expect(result.start.get("year")).toBe(2012);
308
- expect(result.start.get("month")).toBe(1);
309
- expect(result.start.get("day")).toBe(2);
310
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
311
- });
312
-
313
- testSingleCase(chrono, "tomorrow after 4pm", new Date(2012, 1 - 1, 1, 12), (result, text) => {
314
- expect(result.text).toBe(text);
315
- expect(result.start.get("hour")).toBe(16);
316
- expect(result.start.get("year")).toBe(2012);
317
- expect(result.start.get("month")).toBe(1);
318
- expect(result.start.get("day")).toBe(2);
319
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
320
- });
321
-
322
- testSingleCase(chrono, "thurs", (result, text) => {
323
- expect(result.text).toBe(text);
324
- expect(result.start.get("weekday")).toBe(4);
325
- });
326
-
327
- testSingleCase(chrono, "thurs", (result, text) => {
328
- expect(result.text).toBe(text);
329
- expect(result.start.get("weekday")).toBe(4);
330
- });
331
-
332
- testSingleCase(chrono, "this evening", new Date(2016, 10 - 1, 1), (result, text) => {
333
- expect(result.text).toBe(text);
334
- expect(result.start.get("year")).toBe(2016);
335
- expect(result.start.get("month")).toBe(10);
336
- expect(result.start.get("day")).toBe(1);
337
- expect(result.start.get("hour")).toBe(20);
338
- });
339
-
340
- testSingleCase(chrono, "yesterday afternoon", new Date(2016, 10 - 1, 1), (result, text) => {
341
- expect(result.text).toBe(text);
342
- expect(result.start.get("year")).toBe(2016);
343
- expect(result.start.get("month")).toBe(9);
344
- expect(result.start.get("day")).toBe(30);
345
- expect(result.start.get("hour")).toBe(15);
346
- });
347
-
348
- testSingleCase(chrono, "tomorrow morning", new Date(2016, 10 - 1, 1, 8), (result, text) => {
349
- expect(result.text).toBe(text);
350
- expect(result.start.get("year")).toBe(2016);
351
- expect(result.start.get("month")).toBe(10);
352
- expect(result.start.get("day")).toBe(2);
353
- expect(result.start.get("hour")).toBe(6);
354
- });
355
-
356
- testSingleCase(chrono, "this afternoon at 3", new Date(2016, 10 - 1, 1, 8), (result, text) => {
357
- expect(result.text).toBe(text);
358
- expect(result.start.get("year")).toBe(2016);
359
- expect(result.start.get("month")).toBe(10);
360
- expect(result.start.get("day")).toBe(1);
361
- expect(result.start.get("hour")).toBe(15);
362
- });
363
-
364
- testSingleCase(chrono.casual, "at midnight on 12th August", new Date(2012, 8 - 1, 10, 15), (result) => {
365
- expect(result.start.get("year")).toBe(2012);
366
- expect(result.start.get("month")).toBe(8);
367
- expect(result.start.get("day")).toBe(12);
368
- expect(result.start.get("hour")).toBe(0);
369
- expect(result.start.get("minute")).toBe(0);
370
- expect(result.start.get("second")).toBe(0);
371
- expect(result.start.get("millisecond")).toBe(0);
372
- });
373
- });
374
-
375
- test("Test - Casual time with timezone", () => {
376
- testSingleCase(chrono, "Jan 1, 2020 Morning UTC", (result, text) => {
377
- expect(result.text).toBe(text);
378
- expect(result.start.get("year")).toBe(2020);
379
- expect(result.start.get("month")).toBe(1);
380
- expect(result.start.get("day")).toBe(1);
381
- expect(result.start.get("hour")).toBe(6);
382
-
383
- expect(result.start.get("timezoneOffset")).toStrictEqual(0);
384
- expect(result).toBeDate(new Date("2020-01-01T06:00:00.000Z"));
385
- });
386
-
387
- testSingleCase(chrono, "Jan 1, 2020 Evening JST", (result, text) => {
388
- expect(result.text).toBe(text);
389
- expect(result.start.get("year")).toBe(2020);
390
- expect(result.start.get("month")).toBe(1);
391
- expect(result.start.get("day")).toBe(1);
392
- expect(result.start.get("hour")).toBe(20);
393
-
394
- expect(result.start.get("timezoneOffset")).toStrictEqual(540);
395
- expect(result).toBeDate(new Date("Wed Jan 01 2020 20:00:00 GMT+0900 (Japan Standard Time)"));
396
- });
397
- });
398
-
399
- test("Test - Random negative text", () => {
400
- testUnexpectedResult(chrono, "notoday");
401
-
402
- testUnexpectedResult(chrono, "tdtmr");
403
-
404
- testUnexpectedResult(chrono, "xyesterday");
405
-
406
- testUnexpectedResult(chrono, "nowhere");
407
-
408
- testUnexpectedResult(chrono, "noway");
409
-
410
- testUnexpectedResult(chrono, "knowledge");
411
-
412
- testUnexpectedResult(chrono, "mar");
413
-
414
- testUnexpectedResult(chrono, "jan");
415
-
416
- testUnexpectedResult(chrono, "do I have the money");
417
-
418
- testUnexpectedResult(chrono, "I may by here. May the force be with you. Theresa may become PM soon.");
419
-
420
- testUnexpectedResult(chrono, "XXX is set to be released in the second half of 2025");
421
-
422
- testUnexpectedResult(chrono.casual, "do I have the money");
423
-
424
- testUnexpectedResult(chrono.en.GB, "do I have the money");
425
- });
@@ -1,118 +0,0 @@
1
- import * as chrono from "../../src/";
2
- import { testSingleCase } from "../test_util";
3
-
4
- test("Test - Single Expression", function () {
5
- testSingleCase(chrono, "Let's finish this before this 2013-2-7.", new Date(2012, 7, 8), (result) => {
6
- expect(result.start).not.toBeNull();
7
- expect(result.start.get("year")).toBe(2013);
8
- expect(result.start.get("month")).toBe(2);
9
- expect(result.start.get("day")).toBe(7);
10
-
11
- const resultDate = result.start.date();
12
- const expectDate = new Date(2013, 1, 7, 12);
13
- expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
14
- });
15
-
16
- testSingleCase(chrono, "1994-11-05T08:15:30-05:30", new Date(2012, 7, 8), (result) => {
17
- expect(result.start).not.toBeNull();
18
- expect(result.start.get("year")).toBe(1994);
19
- expect(result.start.get("month")).toBe(11);
20
- expect(result.start.get("day")).toBe(5);
21
- expect(result.start.get("hour")).toBe(8);
22
- expect(result.start.get("minute")).toBe(15);
23
- expect(result.start.get("second")).toBe(30);
24
- expect(result.start.get("timezoneOffset")).toBe(-330);
25
- expect(result.text).toBe("1994-11-05T08:15:30-05:30");
26
-
27
- expect(result.start).toBeDate(new Date(784043130000));
28
- });
29
-
30
- testSingleCase(chrono, "1994-11-05T13:15:30Z", new Date(2012, 7, 8), (result) => {
31
- expect(result.start).not.toBeNull();
32
- expect(result.start.get("year")).toBe(1994);
33
- expect(result.start.get("month")).toBe(11);
34
- expect(result.start.get("day")).toBe(5);
35
- expect(result.start.get("hour")).toBe(13);
36
- expect(result.start.get("minute")).toBe(15);
37
- expect(result.start.get("second")).toBe(30);
38
- expect(result.start.get("timezoneOffset")).toBe(0);
39
- expect(result.text).toBe("1994-11-05T13:15:30Z");
40
-
41
- expect(result.start).toBeDate(new Date(784041330000));
42
- });
43
-
44
- testSingleCase(chrono, "1994-11-05T13:15:30Z", new Date(2012, 7, 8), (result) => {
45
- expect(result.start).not.toBeNull();
46
- expect(result.start.get("year")).toBe(1994);
47
- expect(result.start.get("month")).toBe(11);
48
- expect(result.start.get("day")).toBe(5);
49
- expect(result.start.get("hour")).toBe(13);
50
- expect(result.start.get("minute")).toBe(15);
51
- expect(result.start.get("second")).toBe(30);
52
- expect(result.start.get("timezoneOffset")).toBe(0);
53
- expect(result.text).toBe("1994-11-05T13:15:30Z");
54
-
55
- expect(result.start).toBeDate(new Date(784041330000));
56
- });
57
-
58
- testSingleCase(chrono, "- 1994-11-05T13:15:30Z", new Date(2012, 7, 8), (result) => {
59
- expect(result.start).not.toBeNull();
60
- expect(result.start.get("year")).toBe(1994);
61
- expect(result.start.get("month")).toBe(11);
62
- expect(result.start.get("day")).toBe(5);
63
- expect(result.start.get("hour")).toBe(13);
64
- expect(result.start.get("minute")).toBe(15);
65
- expect(result.start.get("second")).toBe(30);
66
- expect(result.start.get("timezoneOffset")).toBe(0);
67
-
68
- expect(result.index).toBe(2);
69
- expect(result.text).toBe("1994-11-05T13:15:30Z");
70
-
71
- expect(result.start).toBeDate(new Date(784041330000));
72
- });
73
-
74
- testSingleCase(chrono.strict, "2016-05-07T23:45:00.487+01:00", new Date(2012, 7, 8), (result) => {
75
- expect(result.start).not.toBeNull();
76
- expect(result.start.get("year")).toBe(2016);
77
- expect(result.start.get("month")).toBe(5);
78
- expect(result.start.get("day")).toBe(7);
79
- expect(result.start.get("hour")).toBe(23);
80
- expect(result.start.get("minute")).toBe(45);
81
- expect(result.start.get("second")).toBe(0);
82
- expect(result.start.get("timezoneOffset")).toBe(60);
83
-
84
- expect(result.text).toBe("2016-05-07T23:45:00.487+01:00");
85
-
86
- expect(result.start).toBeDate(new Date(1462661100487));
87
- });
88
- });
89
-
90
- test("Test - Single Expression with local timezeon", function () {
91
- testSingleCase(chrono, "1994-11-05T13:15:30", new Date(2012, 7, 8), (result) => {
92
- expect(result.text).toBe("1994-11-05T13:15:30");
93
- expect(result.start.get("year")).toBe(1994);
94
- expect(result.start.get("month")).toBe(11);
95
- expect(result.start.get("day")).toBe(5);
96
- expect(result.start.get("hour")).toBe(13);
97
- expect(result.start.get("minute")).toBe(15);
98
- expect(result.start.get("second")).toBe(30);
99
- expect(result.start.get("millisecond")).toBe(0);
100
-
101
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
102
- expect(result.start).toBeDate(new Date("1994-11-05T13:15:30"));
103
- });
104
-
105
- testSingleCase(chrono, "2015-07-31T12:00:00", new Date(2012, 7, 8), (result) => {
106
- expect(result.text).toBe("2015-07-31T12:00:00");
107
- expect(result.start.get("year")).toBe(2015);
108
- expect(result.start.get("month")).toBe(7);
109
- expect(result.start.get("day")).toBe(31);
110
- expect(result.start.get("hour")).toBe(12);
111
- expect(result.start.get("minute")).toBe(0);
112
- expect(result.start.get("second")).toBe(0);
113
- expect(result.start.get("millisecond")).toBe(0);
114
-
115
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
116
- expect(result.start).toBeDate(new Date("2015-07-31T12:00:00"));
117
- });
118
- });
@@ -1,50 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase } from "../test_util";
3
-
4
- test("Test - Single Expression", function () {
5
- testSingleCase(chrono.casual, "2 weeks after yesterday", new Date(2022, 2 - 1, 2), (result) => {
6
- expect(result.text).toBe("2 weeks after yesterday");
7
-
8
- expect(result.start).not.toBeNull();
9
- expect(result.start.get("year")).toBe(2022);
10
- expect(result.start.get("month")).toBe(2);
11
- expect(result.start.get("day")).toBe(15);
12
- expect(result.start.get("weekday")).toBe(2);
13
-
14
- expect(result.start.isCertain("day")).toBe(true);
15
- expect(result.start.isCertain("month")).toBe(true);
16
- expect(result.start.isCertain("year")).toBe(true);
17
-
18
- expect(result.start).toBeDate(new Date(2022, 2 - 1, 15, 0));
19
- });
20
-
21
- testSingleCase(chrono.casual, "2 months before 02/02", new Date(2022, 2 - 1, 2), (result) => {
22
- expect(result.text).toBe("2 months before 02/02");
23
-
24
- expect(result.start).not.toBeNull();
25
- expect(result.start.get("year")).toBe(2021);
26
- expect(result.start.get("month")).toBe(12);
27
- expect(result.start.get("day")).toBe(2);
28
-
29
- expect(result.start.isCertain("day")).toBe(false);
30
- expect(result.start.isCertain("month")).toBe(true);
31
- expect(result.start.isCertain("year")).toBe(true);
32
-
33
- expect(result.start).toBeDate(new Date(2021, 12 - 1, 2, 12));
34
- });
35
-
36
- testSingleCase(chrono.casual, "2 days after next Friday", new Date(2022, 2 - 1, 2), (result) => {
37
- expect(result.text).toBe("2 days after next Friday");
38
-
39
- expect(result.start).not.toBeNull();
40
- expect(result.start.get("year")).toBe(2022);
41
- expect(result.start.get("month")).toBe(2);
42
- expect(result.start.get("day")).toBe(13);
43
-
44
- expect(result.start.isCertain("day")).toBe(true);
45
- expect(result.start.isCertain("month")).toBe(true);
46
- expect(result.start.isCertain("year")).toBe(true);
47
-
48
- expect(result.start).toBeDate(new Date(2022, 2 - 1, 13, 12));
49
- });
50
- });