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,535 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
- import { Meridiem } from "../../src";
4
-
5
- test("Test - Parsing text offset", function () {
6
- testSingleCase(chrono, " 11 AM ", new Date(2016, 10 - 1, 1, 8), (result, text) => {
7
- expect(result.index).toBe(2);
8
- expect(result.text).toBe("11 AM");
9
- });
10
-
11
- testSingleCase(chrono, "2020 at 11 AM ", new Date(2016, 10 - 1, 1, 8), (result, text) => {
12
- expect(result.index).toBe(5);
13
- expect(result.text).toBe("at 11 AM");
14
- });
15
- });
16
-
17
- test("Test - Time expression", function () {
18
- testSingleCase(chrono, "20:32:13", new Date(2016, 10 - 1, 1, 8), (result, text) => {
19
- expect(result.text).toBe(text);
20
- expect(result.start.get("hour")).toBe(20);
21
- expect(result.start.get("minute")).toBe(32);
22
- expect(result.start.get("second")).toBe(13);
23
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
24
-
25
- expect(result.tags()).toContain("parser/ENTimeExpressionParser");
26
- expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
27
- });
28
- });
29
-
30
- test("Test - Time expression with clues", () => {
31
- testSingleCase(chrono, "1 at night", new Date(2016, 10 - 1, 1, 8), (result, text) => {
32
- expect(result.text).toBe(text);
33
- expect(result.start.get("hour")).toBe(1);
34
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
35
- });
36
-
37
- testSingleCase(chrono, "1 in the afternoon", new Date(2016, 10 - 1, 1, 8), (result, text) => {
38
- expect(result.text).toBe(text);
39
- expect(result.start.get("hour")).toBe(13);
40
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
41
- });
42
- });
43
-
44
- test("Test - Time expression after date", function () {
45
- testSingleCase(chrono, "05/31/2024 14:15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
46
- expect(result.text).toBe(text);
47
-
48
- expect(result.start.get("year")).toBe(2024);
49
- expect(result.start.get("month")).toBe(5);
50
- expect(result.start.get("day")).toBe(31);
51
-
52
- expect(result.start.get("hour")).toBe(14);
53
- expect(result.start.get("minute")).toBe(15);
54
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
55
-
56
- expect(result.tags()).toContain("parser/ENTimeExpressionParser");
57
- expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
58
- });
59
-
60
- testSingleCase(chrono, "05/31/2024.14:15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
61
- expect(result.text).toBe(text);
62
-
63
- expect(result.start.get("year")).toBe(2024);
64
- expect(result.start.get("month")).toBe(5);
65
- expect(result.start.get("day")).toBe(31);
66
-
67
- expect(result.start.get("hour")).toBe(14);
68
- expect(result.start.get("minute")).toBe(15);
69
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
70
- });
71
-
72
- testSingleCase(chrono, "05/31/2024:14:15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
73
- expect(result.text).toBe(text);
74
-
75
- expect(result.start.get("year")).toBe(2024);
76
- expect(result.start.get("month")).toBe(5);
77
- expect(result.start.get("day")).toBe(31);
78
-
79
- expect(result.start.get("hour")).toBe(14);
80
- expect(result.start.get("minute")).toBe(15);
81
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
82
- });
83
-
84
- testSingleCase(chrono, "05/31/2024-14:15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
85
- expect(result.text).toBe(text);
86
-
87
- expect(result.start.get("year")).toBe(2024);
88
- expect(result.start.get("month")).toBe(5);
89
- expect(result.start.get("day")).toBe(31);
90
-
91
- expect(result.start.get("hour")).toBe(14);
92
- expect(result.start.get("minute")).toBe(15);
93
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
94
- });
95
- });
96
-
97
- test("Test - Time expression before date", () => {
98
- testSingleCase(chrono, "14:15 05/31/2024", new Date(2016, 10 - 1, 1, 8), (result, text) => {
99
- expect(result.text).toBe(text);
100
-
101
- expect(result.start.get("year")).toBe(2024);
102
- expect(result.start.get("month")).toBe(5);
103
- expect(result.start.get("day")).toBe(31);
104
-
105
- expect(result.start.get("hour")).toBe(14);
106
- expect(result.start.get("minute")).toBe(15);
107
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
108
- });
109
-
110
- testSingleCase(chrono, "8:23 AM, Jul 9", new Date(2016, 10 - 1, 1, 8), (result, text) => {
111
- expect(result.text).toBe(text);
112
-
113
- expect(result.start.get("year")).toBe(2016);
114
- expect(result.start.get("month")).toBe(7);
115
- expect(result.start.get("day")).toBe(9);
116
-
117
- expect(result.start.get("hour")).toBe(8);
118
- expect(result.start.get("minute")).toBe(23);
119
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
120
- });
121
-
122
- testSingleCase(chrono, "8:23 AM ∙ Jul 9", new Date(2016, 10 - 1, 1, 8), (result, text) => {
123
- expect(result.text).toBe(text);
124
-
125
- expect(result.start.get("year")).toBe(2016);
126
- expect(result.start.get("month")).toBe(7);
127
- expect(result.start.get("day")).toBe(9);
128
-
129
- expect(result.start.get("hour")).toBe(8);
130
- expect(result.start.get("minute")).toBe(23);
131
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
132
- });
133
- });
134
-
135
- test("Test - Time range expression", function () {
136
- testSingleCase(chrono, "10:00:00 - 21:45:00", new Date(2016, 10 - 1, 1, 8), (result, text) => {
137
- expect(result.text).toBe(text);
138
- expect(result.tags()).toContain("parser/ENTimeExpressionParser");
139
-
140
- expect(result.start.get("hour")).toBe(10);
141
- expect(result.start.get("minute")).toBe(0);
142
- expect(result.start.get("second")).toBe(0);
143
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
144
- expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
145
-
146
- expect(result.end.get("hour")).toBe(21);
147
- expect(result.end.get("minute")).toBe(45);
148
- expect(result.end.get("second")).toBe(0);
149
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
150
- expect(result.end.tags()).toContain("parser/ENTimeExpressionParser");
151
- });
152
-
153
- testSingleCase(chrono, "10:00:00 until 21:45:00", new Date(2016, 10 - 1, 1, 11), (result, text) => {
154
- expect(result.text).toBe(text);
155
-
156
- expect(result.start.get("hour")).toBe(10);
157
- expect(result.start.get("minute")).toBe(0);
158
- expect(result.start.get("second")).toBe(0);
159
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
160
-
161
- expect(result.end.get("hour")).toBe(21);
162
- expect(result.end.get("minute")).toBe(45);
163
- expect(result.end.get("second")).toBe(0);
164
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
165
- });
166
-
167
- testSingleCase(chrono, "10:00:00 till 21:45:00", new Date(2016, 10 - 1, 1, 11), (result, text) => {
168
- expect(result.text).toBe(text);
169
-
170
- expect(result.start.get("hour")).toBe(10);
171
- expect(result.start.get("minute")).toBe(0);
172
- expect(result.start.get("second")).toBe(0);
173
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
174
-
175
- expect(result.end.get("hour")).toBe(21);
176
- expect(result.end.get("minute")).toBe(45);
177
- expect(result.end.get("second")).toBe(0);
178
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
179
- });
180
-
181
- testSingleCase(chrono, "10:00:00 through 21:45:00", new Date(2016, 10 - 1, 1, 11), (result, text) => {
182
- expect(result.text).toBe(text);
183
-
184
- expect(result.start.get("hour")).toBe(10);
185
- expect(result.start.get("minute")).toBe(0);
186
- expect(result.start.get("second")).toBe(0);
187
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
188
-
189
- expect(result.end.get("hour")).toBe(21);
190
- expect(result.end.get("minute")).toBe(45);
191
- expect(result.end.get("second")).toBe(0);
192
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
193
- });
194
- });
195
-
196
- test("Test - Time non-range expression", function () {
197
- testSingleCase(chrono, "10:00:00 - 15/15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
198
- expect(result.text).toBe("10:00:00");
199
-
200
- expect(result.start.get("hour")).toBe(10);
201
- expect(result.start.get("minute")).toBe(0);
202
- expect(result.start.get("second")).toBe(0);
203
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
204
- });
205
- });
206
-
207
- test("Test - Casual time number expression", function () {
208
- testSingleCase(chrono, "11 at night", new Date(2016, 10 - 1, 1, 8), (result, text) => {
209
- expect(result.text).toBe(text);
210
- expect(result.start.get("year")).toBe(2016);
211
- expect(result.start.get("month")).toBe(10);
212
- expect(result.start.get("day")).toBe(1);
213
- expect(result.start.get("hour")).toBe(23);
214
- });
215
-
216
- testSingleCase(chrono, "11 tonight", new Date(2016, 10 - 1, 1, 8), (result, text) => {
217
- expect(result.text).toBe(text);
218
- expect(result.start.get("year")).toBe(2016);
219
- expect(result.start.get("month")).toBe(10);
220
- expect(result.start.get("day")).toBe(1);
221
- expect(result.start.get("hour")).toBe(23);
222
- });
223
-
224
- testSingleCase(chrono, "6 in the morning", new Date(2016, 10 - 1, 1, 8), (result, text) => {
225
- expect(result.text).toBe(text);
226
- expect(result.start.get("year")).toBe(2016);
227
- expect(result.start.get("month")).toBe(10);
228
- expect(result.start.get("day")).toBe(1);
229
- expect(result.start.get("hour")).toBe(6);
230
- expect(result.start.get("minute")).toBe(0);
231
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
232
- });
233
-
234
- testSingleCase(chrono, "6 in the afternoon", new Date(2016, 10 - 1, 1, 8), (result, text) => {
235
- expect(result.text).toBe(text);
236
- expect(result.start.get("year")).toBe(2016);
237
- expect(result.start.get("month")).toBe(10);
238
- expect(result.start.get("day")).toBe(1);
239
- expect(result.start.get("hour")).toBe(18);
240
- expect(result.start.get("minute")).toBe(0);
241
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
242
- });
243
- });
244
-
245
- test("Test - Time range's meridiem handling", function () {
246
- testSingleCase(chrono, "10 - 11 at night", new Date(2016, 10 - 1, 1, 8), (result, text) => {
247
- expect(result.text).toBe(text);
248
- expect(result.start.get("year")).toBe(2016);
249
- expect(result.start.get("month")).toBe(10);
250
- expect(result.start.get("day")).toBe(1);
251
- expect(result.start.get("hour")).toBe(22);
252
-
253
- expect(result.end.get("year")).toBe(2016);
254
- expect(result.end.get("month")).toBe(10);
255
- expect(result.end.get("day")).toBe(1);
256
- expect(result.end.get("hour")).toBe(23);
257
- });
258
-
259
- testSingleCase(chrono, "8pm - 11", new Date(2016, 10 - 1, 1, 8), (result, text) => {
260
- expect(result.text).toBe(text);
261
- expect(result.start.get("year")).toBe(2016);
262
- expect(result.start.get("month")).toBe(10);
263
- expect(result.start.get("day")).toBe(1);
264
- expect(result.start.get("hour")).toBe(20);
265
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
266
-
267
- expect(result.end.get("year")).toBe(2016);
268
- expect(result.end.get("month")).toBe(10);
269
- expect(result.end.get("day")).toBe(1);
270
- expect(result.end.get("hour")).toBe(23);
271
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
272
- });
273
-
274
- testSingleCase(chrono, "8 - 11pm", new Date(2016, 10 - 1, 1, 8), (result, text) => {
275
- expect(result.text).toBe(text);
276
- expect(result.start.get("year")).toBe(2016);
277
- expect(result.start.get("month")).toBe(10);
278
- expect(result.start.get("day")).toBe(1);
279
- expect(result.start.get("hour")).toBe(20);
280
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
281
-
282
- expect(result.end.get("year")).toBe(2016);
283
- expect(result.end.get("month")).toBe(10);
284
- expect(result.end.get("day")).toBe(1);
285
- expect(result.end.get("hour")).toBe(23);
286
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
287
- });
288
-
289
- testSingleCase(chrono, "7 - 8", new Date(2016, 10 - 1, 1, 8), (result, text) => {
290
- expect(result.text).toBe(text);
291
- expect(result.start.get("year")).toBe(2016);
292
- expect(result.start.get("month")).toBe(10);
293
- expect(result.start.get("day")).toBe(1);
294
- expect(result.start.get("hour")).toBe(7);
295
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
296
-
297
- expect(result.end.get("year")).toBe(2016);
298
- expect(result.end.get("month")).toBe(10);
299
- expect(result.end.get("day")).toBe(1);
300
- expect(result.end.get("hour")).toBe(8);
301
- expect(result.end.get("meridiem")).toBe(Meridiem.AM);
302
- });
303
-
304
- testSingleCase(chrono.fr, "1pm-3", new Date(2012, 7, 10), (result, text) => {
305
- expect(result.text).toBe(text);
306
-
307
- expect(result.start.get("year")).toBe(2012);
308
- expect(result.start.get("month")).toBe(8);
309
- expect(result.start.get("day")).toBe(10);
310
- expect(result.start.get("hour")).toBe(13);
311
- expect(result.start.get("minute")).toBe(0);
312
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
313
- expect(result.start.isCertain("meridiem")).toBe(true);
314
-
315
- expect(result.end.get("year")).toBe(2012);
316
- expect(result.end.get("month")).toBe(8);
317
- expect(result.end.get("day")).toBe(10);
318
- expect(result.end.get("hour")).toBe(15);
319
- expect(result.end.get("minute")).toBe(0);
320
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
321
- expect(result.end.isCertain("meridiem")).toBe(true);
322
- });
323
-
324
- testSingleCase(chrono.fr, "1am-3", new Date(2012, 7, 10), (result) => {
325
- expect(result.start.get("year")).toBe(2012);
326
- expect(result.start.get("month")).toBe(8);
327
- expect(result.start.get("day")).toBe(10);
328
- expect(result.start.get("hour")).toBe(1);
329
- expect(result.start.get("minute")).toBe(0);
330
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
331
- expect(result.start.isCertain("meridiem")).toBe(true);
332
-
333
- expect(result.end.get("year")).toBe(2012);
334
- expect(result.end.get("month")).toBe(8);
335
- expect(result.end.get("day")).toBe(10);
336
- expect(result.end.get("hour")).toBe(3);
337
- expect(result.end.get("minute")).toBe(0);
338
- expect(result.end.get("meridiem")).toBe(Meridiem.AM);
339
- expect(result.end.isCertain("meridiem")).toBe(false);
340
- });
341
-
342
- testSingleCase(chrono.fr, "11pm-3", new Date(2012, 7, 10), (result) => {
343
- expect(result.start.get("year")).toBe(2012);
344
- expect(result.start.get("month")).toBe(8);
345
- expect(result.start.get("day")).toBe(10);
346
- expect(result.start.get("hour")).toBe(23);
347
- expect(result.start.get("minute")).toBe(0);
348
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
349
- expect(result.start.isCertain("meridiem")).toBe(true);
350
-
351
- expect(result.end.get("year")).toBe(2012);
352
- expect(result.end.get("month")).toBe(8);
353
- expect(result.end.get("day")).toBe(11);
354
- expect(result.end.get("hour")).toBe(3);
355
- expect(result.end.get("minute")).toBe(0);
356
- expect(result.end.get("meridiem")).toBe(Meridiem.AM);
357
- expect(result.end.isCertain("meridiem")).toBe(false);
358
- });
359
-
360
- testSingleCase(chrono.fr, "12-3am", new Date(2012, 7, 10), (result) => {
361
- expect(result.start.get("year")).toBe(2012);
362
- expect(result.start.get("month")).toBe(8);
363
- expect(result.start.get("day")).toBe(10);
364
- expect(result.start.get("hour")).toBe(0);
365
- expect(result.start.get("minute")).toBe(0);
366
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
367
-
368
- expect(result.end.get("year")).toBe(2012);
369
- expect(result.end.get("month")).toBe(8);
370
- expect(result.end.get("day")).toBe(10);
371
- expect(result.end.get("hour")).toBe(3);
372
- expect(result.end.get("minute")).toBe(0);
373
- expect(result.end.get("meridiem")).toBe(Meridiem.AM);
374
- expect(result.end.isCertain("meridiem")).toBe(true);
375
- });
376
-
377
- testSingleCase(chrono.fr, "12-3pm", new Date(2012, 7, 10), (result) => {
378
- expect(result.start.get("year")).toBe(2012);
379
- expect(result.start.get("month")).toBe(8);
380
- expect(result.start.get("day")).toBe(10);
381
- expect(result.start.get("hour")).toBe(12);
382
- expect(result.start.get("minute")).toBe(0);
383
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
384
-
385
- expect(result.end.get("year")).toBe(2012);
386
- expect(result.end.get("month")).toBe(8);
387
- expect(result.end.get("day")).toBe(10);
388
- expect(result.end.get("hour")).toBe(15);
389
- expect(result.end.get("minute")).toBe(0);
390
- expect(result.end.get("meridiem")).toBe(Meridiem.PM);
391
- expect(result.end.isCertain("meridiem")).toBe(true);
392
- });
393
- });
394
-
395
- test("Test - Time range to the next day", () => {
396
- testSingleCase(chrono, "December 31, 2022 10:00 pm - 1:00 am", new Date(2017, 7 - 1, 7), (result) => {
397
- expect(result.start.get("day")).toBe(31);
398
- expect(result.start.get("month")).toBe(12);
399
- expect(result.start.get("year")).toBe(2022);
400
- expect(result.start.get("hour")).toBe(22);
401
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
402
- });
403
-
404
- testSingleCase(chrono, "December 31, 2022 10:00 pm - 12:00 am", new Date(2017, 7 - 1, 7), (result) => {
405
- expect(result.start.get("day")).toBe(31);
406
- expect(result.start.get("month")).toBe(12);
407
- expect(result.start.get("year")).toBe(2022);
408
- expect(result.start.get("hour")).toBe(22);
409
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
410
- });
411
- });
412
-
413
- test("Test - Parsing causal positive cases", function () {
414
- testSingleCase(chrono.casual, "at 1", (result) => {
415
- expect(result.text).toBe("at 1");
416
- expect(result.start.get("hour")).toBe(1);
417
- });
418
-
419
- testSingleCase(chrono.casual, "at 12", (result) => {
420
- expect(result.text).toBe("at 12");
421
- expect(result.start.get("hour")).toBe(12);
422
- });
423
-
424
- testSingleCase(chrono.casual, "at 12.30", (result) => {
425
- expect(result.text).toBe("at 12.30");
426
- expect(result.start.get("hour")).toBe(12);
427
- expect(result.start.get("minute")).toBe(30);
428
- });
429
- });
430
-
431
- test("Test - Parsing negative cases : [year-like] pattern", function () {
432
- testUnexpectedResult(chrono, "2020");
433
-
434
- testUnexpectedResult(chrono, "2020 ");
435
-
436
- testUnexpectedResult(chrono, "2019 to 2020");
437
- });
438
-
439
- test("Test - Parsing negative cases : 'at [some numbers]'", function () {
440
- testUnexpectedResult(chrono, "I'm at 101,194 points!");
441
-
442
- testUnexpectedResult(chrono, "I'm at 101 points!");
443
-
444
- testUnexpectedResult(chrono, "I'm at 10.1");
445
- });
446
-
447
- test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]'", function () {
448
- testUnexpectedResult(chrono, "I'm at 10.1 - 10.12");
449
-
450
- testUnexpectedResult(chrono, "I'm at 10 - 10.1");
451
- });
452
-
453
- test("Test - Parsing negative cases (Strict)", function () {
454
- testUnexpectedResult(chrono.strict, "I'm at 101,194 points!");
455
-
456
- testUnexpectedResult(chrono.strict, "I'm at 101 points!");
457
-
458
- testUnexpectedResult(chrono.strict, "I'm at 10.1");
459
-
460
- testUnexpectedResult(chrono.strict, "I'm at 10");
461
-
462
- testUnexpectedResult(chrono.strict, "2020");
463
- });
464
-
465
- test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]' (Strict)", function () {
466
- testUnexpectedResult(chrono.strict, "I'm at 10.1 - 10.12");
467
-
468
- testUnexpectedResult(chrono.strict, "I'm at 10 - 10.1");
469
-
470
- testUnexpectedResult(chrono.strict, "I'm at 10 - 20");
471
-
472
- testUnexpectedResult(chrono.strict, "7-730");
473
- });
474
-
475
- test("Test - Forward time calculation 'forwardDate' flag", () => {
476
- testSingleCase(chrono, "1am", new Date(2022, 5 - 1, 26, 1, 57), { forwardDate: true }, (result) => {
477
- expect(result.start.get("year")).toBe(2022);
478
- expect(result.start.get("month")).toBe(5);
479
- expect(result.start.get("day")).toBe(27);
480
- expect(result.start.get("hour")).toBe(1);
481
- });
482
-
483
- testSingleCase(chrono, "11am", new Date(2016, 10 - 1, 1, 12), { forwardDate: true }, (result) => {
484
- expect(result.start.get("year")).toBe(2016);
485
- expect(result.start.get("month")).toBe(10);
486
- expect(result.start.get("day")).toBe(2);
487
- expect(result.start.get("hour")).toBe(11);
488
- });
489
-
490
- testSingleCase(chrono, " 11am to 1am ", new Date(2016, 10 - 1, 1, 12), { forwardDate: true }, (result) => {
491
- expect(result.start.get("year")).toBe(2016);
492
- expect(result.start.get("month")).toBe(10);
493
- expect(result.start.get("day")).toBe(2);
494
- expect(result.start.get("hour")).toBe(11);
495
-
496
- expect(result.end).not.toBeNull();
497
- expect(result.end.get("year")).toBe(2016);
498
- expect(result.end.get("month")).toBe(10);
499
- expect(result.end.get("day")).toBe(3);
500
- expect(result.end.get("hour")).toBe(1);
501
- });
502
-
503
- testSingleCase(chrono, " 10am to 12pm ", new Date(2016, 10 - 1, 1, 11), { forwardDate: true }, (result) => {
504
- expect(result.start.get("year")).toBe(2016);
505
- expect(result.start.get("month")).toBe(10);
506
- expect(result.start.get("day")).toBe(2);
507
- expect(result.start.get("hour")).toBe(10);
508
-
509
- expect(result.end).not.toBeNull();
510
- expect(result.end.get("year")).toBe(2016);
511
- expect(result.end.get("month")).toBe(10);
512
- expect(result.end.get("day")).toBe(2);
513
- expect(result.end.get("hour")).toBe(12);
514
- });
515
- });
516
-
517
- test("Test - Test - Forward time calculation 'forwardDate' flag in different timezones", () => {
518
- testSingleCase(
519
- chrono,
520
- "1am",
521
- {
522
- instant: new Date("Wed May 26 2022 01:57:00 GMT-0500 (CDT)"),
523
- timezone: "CDT",
524
- },
525
- {
526
- forwardDate: true,
527
- },
528
- (result) => {
529
- expect(result.start.get("year")).toBe(2022);
530
- expect(result.start.get("month")).toBe(5);
531
- expect(result.start.get("day")).toBe(27);
532
- expect(result.start.get("hour")).toBe(1);
533
- }
534
- );
535
- });