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,223 +0,0 @@
1
- import * as chrono from "../../src/";
2
- import { testSingleCase } from "../test_util";
3
- import { Meridiem } from "../../src/";
4
-
5
- test("Test - Simple Expression", function () {
6
- testSingleCase(chrono.de, "18:10", new Date(2012, 7, 10), (result) => {
7
- expect(result.index).toBe(0);
8
- expect(result.text).toBe("18:10");
9
-
10
- expect(result.start).not.toBeNull();
11
- expect(result.start.get("hour")).toBe(18);
12
- expect(result.start.get("minute")).toBe(10);
13
-
14
- expect(result.start.isCertain("day")).toBe(false);
15
- expect(result.start.isCertain("month")).toBe(false);
16
- expect(result.start.isCertain("year")).toBe(false);
17
- expect(result.start.isCertain("hour")).toBe(true);
18
- expect(result.start.isCertain("minute")).toBe(true);
19
- expect(result.start.isCertain("second")).toBe(false);
20
- expect(result.start.isCertain("millisecond")).toBe(false);
21
-
22
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 10));
23
- });
24
-
25
- testSingleCase(chrono.de, "um 14 Uhr", new Date(2012, 7, 10), (result) => {
26
- expect(result.start.get("hour")).toBe(14);
27
- expect(result.start.get("minute")).toBe(0);
28
- });
29
-
30
- testSingleCase(chrono.de, "um 16h", new Date(2012, 7, 10), (result) => {
31
- expect(result.start.get("hour")).toBe(16);
32
- expect(result.start.get("minute")).toBe(0);
33
- });
34
-
35
- testSingleCase(chrono.de, "um 7 morgens", new Date(2012, 7, 10), (result) => {
36
- expect(result.start.get("hour")).toBe(7);
37
- expect(result.start.get("minute")).toBe(0);
38
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
39
- expect(result.start.isCertain("meridiem")).toBeTruthy();
40
- });
41
-
42
- testSingleCase(chrono.de, "11:00 Uhr vormittags", new Date(2012, 7, 10), (result, text) => {
43
- expect(result.text).toBe(text);
44
- expect(result.start.get("hour")).toBe(11);
45
- expect(result.start.get("minute")).toBe(0);
46
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
47
- expect(result.start.isCertain("meridiem")).toBeTruthy();
48
- });
49
-
50
- testSingleCase(chrono.de, "um 7 morgens", new Date(2012, 7, 10), (result) => {
51
- expect(result.start.get("hour")).toBe(7);
52
- expect(result.start.get("minute")).toBe(0);
53
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
54
- expect(result.start.isCertain("meridiem")).toBeTruthy();
55
- });
56
-
57
- testSingleCase(chrono.de, "11:00 Uhr vormittags", new Date(2012, 7, 10), (result, text) => {
58
- expect(result.text).toBe(text);
59
- expect(result.start.get("hour")).toBe(11);
60
- expect(result.start.get("minute")).toBe(0);
61
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
62
- expect(result.start.isCertain("meridiem")).toBeTruthy();
63
- });
64
-
65
- testSingleCase(chrono.de, "um 8 Uhr nachmittags", new Date(2012, 7, 10), (result, text) => {
66
- expect(result.text).toBe(text);
67
- expect(result.start.get("hour")).toBe(20);
68
- expect(result.start.get("minute")).toBe(0);
69
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
70
- expect(result.start.isCertain("meridiem")).toBeTruthy();
71
- });
72
-
73
- testSingleCase(chrono.de, "um 8 Uhr in der Nacht", new Date(2012, 7, 10), (result, text) => {
74
- expect(result.text).toBe(text);
75
- expect(result.start.get("hour")).toBe(20);
76
- expect(result.start.get("minute")).toBe(0);
77
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
78
- expect(result.start.isCertain("meridiem")).toBeTruthy();
79
- });
80
-
81
- testSingleCase(chrono.de, "um 5 Uhr in der Nacht", new Date(2012, 7, 10), (result, text) => {
82
- expect(result.text).toBe(text);
83
- expect(result.start.get("hour")).toBe(5);
84
- expect(result.start.get("minute")).toBe(0);
85
- expect(result.start.get("meridiem")).toBe(Meridiem.AM);
86
- expect(result.start.isCertain("meridiem")).toBeTruthy();
87
- });
88
- });
89
-
90
- test("Test - Range Expression", function () {
91
- testSingleCase(chrono.de, "18:10 - 22.32", new Date(2012, 7, 10), (result) => {
92
- expect(result.index).toBe(0);
93
- expect(result.text).toBe("18:10 - 22.32");
94
-
95
- expect(result.start).not.toBeNull();
96
- expect(result.start.get("hour")).toBe(18);
97
- expect(result.start.get("minute")).toBe(10);
98
-
99
- expect(result.start.isCertain("day")).toBe(false);
100
- expect(result.start.isCertain("month")).toBe(false);
101
- expect(result.start.isCertain("year")).toBe(false);
102
- expect(result.start.isCertain("hour")).toBe(true);
103
- expect(result.start.isCertain("minute")).toBe(true);
104
- expect(result.start.isCertain("second")).toBe(false);
105
- expect(result.start.isCertain("millisecond")).toBe(false);
106
-
107
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 10));
108
-
109
- expect(result.end).not.toBeNull();
110
- expect(result.end.get("hour")).toBe(22);
111
- expect(result.end.get("minute")).toBe(32);
112
-
113
- expect(result.end.isCertain("day")).toBe(false);
114
- expect(result.end.isCertain("month")).toBe(false);
115
- expect(result.end.isCertain("year")).toBe(false);
116
- expect(result.end.isCertain("hour")).toBe(true);
117
- expect(result.end.isCertain("minute")).toBe(true);
118
- expect(result.end.isCertain("second")).toBe(false);
119
- expect(result.end.isCertain("millisecond")).toBe(false);
120
-
121
- expect(result.end).toBeDate(new Date(2012, 7, 10, 22, 32));
122
- });
123
-
124
- testSingleCase(chrono.de, " von 6:30 bis 23:00 ", new Date(2012, 7, 10), (result) => {
125
- expect(result.index).toBe(1);
126
- expect(result.text).toBe("von 6:30 bis 23:00");
127
-
128
- expect(result.start).not.toBeNull();
129
- expect(result.start.get("hour")).toBe(6);
130
- expect(result.start.get("minute")).toBe(30);
131
- expect(result.start.get("meridiem")).toBe(0);
132
-
133
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
134
-
135
- expect(result.end).not.toBeNull();
136
- expect(result.end.get("hour")).toBe(23);
137
- expect(result.end.get("minute")).toBe(0);
138
- expect(result.end.get("meridiem")).toBe(1);
139
-
140
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
141
- });
142
-
143
- testSingleCase(chrono.de, " von 6h30 bis 23h00 ", new Date(2012, 7, 10), (result) => {
144
- expect(result.index).toBe(1);
145
- expect(result.text).toBe("von 6h30 bis 23h00");
146
-
147
- expect(result.start).not.toBeNull();
148
- expect(result.start.get("hour")).toBe(6);
149
- expect(result.start.get("minute")).toBe(30);
150
- expect(result.start.get("meridiem")).toBe(0);
151
-
152
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
153
-
154
- expect(result.end).not.toBeNull();
155
- expect(result.end.get("hour")).toBe(23);
156
- expect(result.end.get("minute")).toBe(0);
157
- expect(result.end.get("meridiem")).toBe(1);
158
-
159
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
160
- });
161
-
162
- testSingleCase(chrono.de, " von 6h30 morgens bis 11 am Abend", new Date(2012, 7, 10), (result) => {
163
- expect(result.index).toBe(1);
164
- expect(result.text).toBe("von 6h30 morgens bis 11 am Abend");
165
-
166
- expect(result.start).not.toBeNull();
167
- expect(result.start.get("hour")).toBe(6);
168
- expect(result.start.get("minute")).toBe(30);
169
- expect(result.start.get("meridiem")).toBe(0);
170
-
171
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
172
-
173
- expect(result.end).not.toBeNull();
174
- expect(result.end.get("hour")).toBe(23);
175
- expect(result.end.get("minute")).toBe(0);
176
- expect(result.end.get("meridiem")).toBe(1);
177
-
178
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
179
- });
180
- });
181
-
182
- test("Test - Timezone extraction", function () {
183
- testSingleCase(chrono.de, "um 14 Uhr", new Date(2016, 1, 28), (result, text) => {
184
- expect(result.text).toBe(text);
185
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
186
- expect(!result.start.get("timezoneOffset")).not.toBeNull();
187
- });
188
-
189
- testSingleCase(chrono.de, "um 14 Uhr CET", new Date(2016, 1, 28), (result, text) => {
190
- expect(result.text).toBe(text);
191
- expect(result.start.isCertain("timezoneOffset")).toBe(true);
192
- expect(result.start.get("timezoneOffset")).toBe(60);
193
- });
194
-
195
- testSingleCase(chrono.de, "14 Uhr cet", new Date(2016, 4, 28), (result, text) => {
196
- expect(result.text).toBe(text);
197
- expect(result.start.isCertain("timezoneOffset")).toBe(true);
198
- expect(result.start.get("timezoneOffset")).toBe(120);
199
- });
200
- });
201
-
202
- test("Test - Random date + time expression", function () {
203
- testSingleCase(chrono.de, "um 12", (result, text) => {
204
- expect(result.text).toBe(text);
205
- });
206
-
207
- testSingleCase(chrono.de, "am Mittag", (result, text) => {
208
- expect(result.text).toBe("Mittag");
209
- expect(result.start.get("hour")).toBe(12);
210
- });
211
-
212
- testSingleCase(chrono.de, "am Freitag um 14 Uhr cetteln wir etwas an", new Date(2016, 1, 28), (result, text) => {
213
- expect(result.text).toBe("am Freitag um 14 Uhr");
214
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
215
- expect(!result.start.get("timezoneOffset")).not.toBeNull();
216
- });
217
-
218
- testSingleCase(chrono.de, "Freitag um 14 Uhr CET", new Date(2016, 4, 28), (result, text) => {
219
- expect(result.text).toBe(text);
220
- expect(result.start.isCertain("timezoneOffset")).toBe(true);
221
- expect(result.start.get("timezoneOffset")).toBe(120);
222
- });
223
- });
@@ -1,120 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
-
4
- // test("Test - fr - modifier mandatory just after", function () {
5
- // testUnexpectedResult(chrono.de, "le mois d'avril");
6
- //
7
- // testUnexpectedResult(chrono.de, "le mois d'avril prochain");
8
- // });
9
-
10
- test("Test - de - relative date", function () {
11
- testSingleCase(chrono.de, "kommende Woche", new Date(2017, 5 - 1, 12), (result, text) => {
12
- expect(result.text).toBe(text);
13
- expect(result.start.get("year")).toBe(2017);
14
- expect(result.start.get("month")).toBe(5);
15
- expect(result.start.get("day")).toBe(19);
16
- });
17
-
18
- testSingleCase(chrono.de, "in 2 Wochen", new Date(2017, 5 - 1, 12, 18, 11), (result, text) => {
19
- expect(result.text).toBe(text);
20
- expect(result.start.get("year")).toBe(2017);
21
- expect(result.start.get("month")).toBe(5);
22
- expect(result.start.get("day")).toBe(26);
23
- expect(result.start.get("hour")).toBe(18);
24
- expect(result.start.get("minute")).toBe(11);
25
- });
26
-
27
- testSingleCase(chrono.de, "in drei Wochen", new Date(2017, 5 - 1, 12), (result, text) => {
28
- expect(result.text).toBe(text);
29
- expect(result.start.get("year")).toBe(2017);
30
- expect(result.start.get("month")).toBe(6);
31
- expect(result.start.get("day")).toBe(2);
32
- });
33
-
34
- testSingleCase(chrono.de, "letzten Monat", new Date(2017, 5 - 1, 12), (result, text) => {
35
- expect(result.text).toBe(text);
36
- expect(result.start.get("year")).toBe(2017);
37
- expect(result.start.get("month")).toBe(4);
38
- expect(result.start.get("day")).toBe(12);
39
- });
40
-
41
- testSingleCase(chrono.de, "in den 30 vorangegangenen Tagen", new Date(2017, 5 - 1, 12), (result, text) => {
42
- expect(result.text).toBe("30 vorangegangenen Tagen");
43
- expect(result.start.get("year")).toBe(2017);
44
- expect(result.start.get("month")).toBe(4);
45
- expect(result.start.get("day")).toBe(12);
46
- });
47
-
48
- testSingleCase(chrono.de, "die vergangenen 24 Stunden", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
49
- expect(result.text).toBe("vergangenen 24 Stunden");
50
- expect(result.start.get("year")).toBe(2017);
51
- expect(result.start.get("month")).toBe(5);
52
- expect(result.start.get("day")).toBe(11);
53
- expect(result.start.get("hour")).toBe(11);
54
- expect(result.start.get("minute")).toBe(27);
55
- });
56
-
57
- testSingleCase(chrono.de, "in den folgenden 90 sekunden", new Date(2017, 5 - 1, 12, 11, 27, 3), (result, text) => {
58
- expect(result.text).toBe("folgenden 90 sekunden");
59
- expect(result.start.get("year")).toBe(2017);
60
- expect(result.start.get("month")).toBe(5);
61
- expect(result.start.get("day")).toBe(12);
62
- expect(result.start.get("hour")).toBe(11);
63
- expect(result.start.get("minute")).toBe(28);
64
- expect(result.start.get("second")).toBe(33);
65
- });
66
-
67
- testSingleCase(chrono.de, "die letzten acht Minuten", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
68
- expect(result.text).toBe("letzten acht Minuten");
69
- expect(result.start.get("year")).toBe(2017);
70
- expect(result.start.get("month")).toBe(5);
71
- expect(result.start.get("day")).toBe(12);
72
- expect(result.start.get("hour")).toBe(11);
73
- expect(result.start.get("minute")).toBe(19);
74
- expect(result.start.get("second")).toBe(0);
75
- });
76
-
77
- testSingleCase(chrono.de, "letztes Quartal", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
78
- expect(result.text).toBe(text);
79
- expect(result.start.get("year")).toBe(2017);
80
- expect(result.start.get("month")).toBe(2);
81
- expect(result.start.get("day")).toBe(12);
82
- expect(result.start.get("hour")).toBe(11);
83
- expect(result.start.get("minute")).toBe(27);
84
- expect(result.start.get("second")).toBe(0);
85
-
86
- expect(result.start.isCertain("month")).toBeFalsy();
87
- expect(result.start.isCertain("day")).toBeFalsy();
88
- expect(result.start.isCertain("hour")).toBeFalsy();
89
- expect(result.start.isCertain("minute")).toBeFalsy();
90
- expect(result.start.isCertain("second")).toBeFalsy();
91
- });
92
-
93
- testSingleCase(chrono.de, "kommendes Jahr", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
94
- expect(result.text).toBe(text);
95
- expect(result.start.get("year")).toBe(2018);
96
- expect(result.start.get("month")).toBe(5);
97
- expect(result.start.get("day")).toBe(12);
98
- expect(result.start.get("hour")).toBe(11);
99
- expect(result.start.get("minute")).toBe(27);
100
- expect(result.start.get("second")).toBe(0);
101
-
102
- expect(result.start.isCertain("month")).toBeFalsy();
103
- expect(result.start.isCertain("day")).toBeFalsy();
104
- expect(result.start.isCertain("hour")).toBeFalsy();
105
- expect(result.start.isCertain("minute")).toBeFalsy();
106
- expect(result.start.isCertain("second")).toBeFalsy();
107
- });
108
- });
109
-
110
- test("Test - de - false positive prevention for single-letter time units", function () {
111
- // Test that "Letzte A" in "Letzte Aktualisierun" doesn't match as "letzte a" (last year)
112
- // The word boundary check should prevent "A" from matching the time unit "a"
113
- testSingleCase(chrono.de, "Letzte Aktualisierun 03/12/2025", (result) => {
114
- expect(result.text).toBe("03/12/2025");
115
- expect(result.start.get("year")).toBe(2025);
116
- expect(result.start.get("month")).toBe(12);
117
- expect(result.start.get("day")).toBe(3);
118
- expect(result).toBeDate(new Date(2025, 12 - 1, 3, 12));
119
- });
120
- });
@@ -1,119 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase } from "../test_util";
3
-
4
- test("Test - Single Expression", function () {
5
- testSingleCase(chrono.de, "Wir müssen etwas in 5 Tagen erledigen.", new Date(2012, 7, 10), (result) => {
6
- expect(result.index).toBe(17);
7
- expect(result.text).toBe("in 5 Tagen");
8
-
9
- expect(result.start).not.toBeNull();
10
- expect(result.start.get("year")).toBe(2012);
11
- expect(result.start.get("month")).toBe(8);
12
- expect(result.start.get("day")).toBe(15);
13
-
14
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
15
- });
16
-
17
- testSingleCase(chrono.de, "Wir müssen etwas in fünf Tagen erledigen.", new Date(2012, 7, 10, 11, 12), (result) => {
18
- expect(result.index).toBe(17);
19
- expect(result.text).toBe("in fünf Tagen");
20
-
21
- expect(result.start).not.toBeNull();
22
- expect(result.start.get("year")).toBe(2012);
23
- expect(result.start.get("month")).toBe(8);
24
- expect(result.start.get("day")).toBe(15);
25
-
26
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 15, 11, 12));
27
- });
28
-
29
- testSingleCase(chrono.de, "in 5 Minuten", new Date(2012, 7, 10, 12, 14), (result) => {
30
- expect(result.index).toBe(0);
31
- expect(result.text).toBe("in 5 Minuten");
32
-
33
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
34
- });
35
-
36
- testSingleCase(chrono.de, "für 5 minuten", new Date(2012, 7, 10, 12, 14), (result) => {
37
- expect(result.index).toBe(0);
38
- expect(result.text).toBe("für 5 minuten");
39
-
40
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
41
- });
42
-
43
- testSingleCase(chrono.de, "in einer Stunde", new Date(2012, 7, 10, 12, 14), (result) => {
44
- expect(result.index).toBe(0);
45
- expect(result.text).toBe("in einer Stunde");
46
-
47
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
48
- });
49
-
50
- testSingleCase(chrono.de, "starte einen Timer für 5 Minuten", new Date(2012, 7, 10, 12, 14), (result) => {
51
- expect(result.index).toBe(19);
52
- expect(result.text).toBe("für 5 Minuten");
53
-
54
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
55
- });
56
-
57
- testSingleCase(chrono.de, "In 5 Minuten gehe ich nach Hause", new Date(2012, 7, 10, 12, 14), (result) => {
58
- expect(result.index).toBe(0);
59
- expect(result.text).toBe("In 5 Minuten");
60
-
61
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
62
- });
63
-
64
- testSingleCase(chrono.de, "In 5 Sekunden wird ein Auto fahren", new Date(2012, 7, 10, 12, 14), (result) => {
65
- expect(result.index).toBe(0);
66
- expect(result.text).toBe("In 5 Sekunden");
67
-
68
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 5));
69
- });
70
-
71
- testSingleCase(chrono.de, "in zwei Wochen", new Date(2012, 7, 10, 12, 14), (result) => {
72
- expect(result.index).toBe(0);
73
- expect(result.text).toBe("in zwei Wochen");
74
-
75
- expect(result.start).toBeDate(new Date(2012, 7, 24, 12, 14));
76
- });
77
-
78
- testSingleCase(chrono.de, "in einem Monat", new Date(2012, 7, 10, 7, 14), (result) => {
79
- expect(result.index).toBe(0);
80
- expect(result.text).toBe("in einem Monat");
81
-
82
- expect(result.start).toBeDate(new Date(2012, 8, 10, 7, 14));
83
- });
84
-
85
- testSingleCase(chrono.de, "in einigen Monaten", new Date(2012, 6, 10, 22, 14), (result) => {
86
- expect(result.index).toBe(0);
87
- expect(result.text).toBe("in einigen Monaten");
88
-
89
- expect(result.start).toBeDate(new Date(2012, 9, 10, 22, 14));
90
- });
91
-
92
- testSingleCase(chrono.de, "in einem Jahr", new Date(2012, 7, 10, 12, 14), (result) => {
93
- expect(result.index).toBe(0);
94
- expect(result.text).toBe("in einem Jahr");
95
-
96
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
97
- });
98
-
99
- testSingleCase(chrono.de, "in 20 Jahren", new Date(2012, 7, 10, 12, 14), (result) => {
100
- expect(result.index).toBe(0);
101
- expect(result.text).toBe("in 20 Jahren");
102
-
103
- expect(result.start).toBeDate(new Date(2032, 7, 10, 12, 14));
104
- });
105
-
106
- testSingleCase(chrono.de, "In 5 Minuten wird ein Auto fahren", new Date(2012, 7, 10, 12, 14), (result) => {
107
- expect(result.index).toBe(0);
108
- expect(result.text).toBe("In 5 Minuten");
109
-
110
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
111
- });
112
-
113
- testSingleCase(chrono.de, "In 5 Min wird ein Auto fahren", new Date(2012, 7, 10, 12, 14), (result) => {
114
- expect(result.index).toBe(0);
115
- expect(result.text).toBe("In 5 Min");
116
-
117
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
118
- });
119
- });
@@ -1,158 +0,0 @@
1
- import * as chrono from "../../src/";
2
- import { testSingleCase } from "../test_util";
3
-
4
- test("Test - Simple Weekday Expression", () => {
5
- testSingleCase(chrono.de, "Montag", new Date(2012, 7, 9), (result) => {
6
- expect(result.start).not.toBeNull();
7
- expect(result.start.get("year")).toBe(2012);
8
- expect(result.start.get("month")).toBe(8);
9
- expect(result.start.get("day")).toBe(6);
10
- expect(result.start.get("weekday")).toBe(1);
11
-
12
- expect(result.start.isCertain("day")).toBe(false);
13
- expect(result.start.isCertain("month")).toBe(false);
14
- expect(result.start.isCertain("year")).toBe(false);
15
- expect(result.start.isCertain("weekday")).toBe(true);
16
-
17
- expect(result.start).toBeDate(new Date(2012, 7, 6, 12));
18
- });
19
-
20
- testSingleCase(chrono.de, "am Donnerstag", new Date(2012, 7, 9), (result) => {
21
- expect(result.text).toBe("am Donnerstag");
22
-
23
- expect(result.start.get("year")).toBe(2012);
24
- expect(result.start.get("month")).toBe(8);
25
- expect(result.start.get("day")).toBe(9);
26
- expect(result.start.get("weekday")).toBe(4);
27
-
28
- expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
29
- });
30
-
31
- testSingleCase(chrono.de, "Sonntag", new Date(2012, 7, 9), (result) => {
32
- expect(result.text).toBe("Sonntag");
33
-
34
- expect(result.start.get("year")).toBe(2012);
35
- expect(result.start.get("month")).toBe(8);
36
- expect(result.start.get("day")).toBe(12);
37
- expect(result.start.get("weekday")).toBe(0);
38
-
39
- expect(result.start).toBeDate(new Date(2012, 7, 12, 12));
40
- });
41
-
42
- testSingleCase(chrono.de, "Die Deadline war letzten Freitag...", new Date(2012, 7, 9), (result) => {
43
- expect(result.index).toBe(17);
44
- expect(result.text).toBe("letzten Freitag");
45
-
46
- expect(result.start.get("year")).toBe(2012);
47
- expect(result.start.get("month")).toBe(8);
48
- expect(result.start.get("day")).toBe(3);
49
- expect(result.start.get("weekday")).toBe(5);
50
-
51
- expect(result.start).toBeDate(new Date(2012, 7, 3, 12));
52
- });
53
-
54
- testSingleCase(chrono.de, "Treffen wir uns am Freitag nächste Woche", new Date(2015, 3, 18), (result) => {
55
- expect(result.index).toBe(16);
56
- expect(result.text).toBe("am Freitag nächste Woche");
57
-
58
- expect(result.start.get("year")).toBe(2015);
59
- expect(result.start.get("month")).toBe(4);
60
- expect(result.start.get("day")).toBe(24);
61
- expect(result.start.get("weekday")).toBe(5);
62
-
63
- expect(result.start).toBeDate(new Date(2015, 3, 24, 12));
64
- });
65
-
66
- testSingleCase(
67
- chrono.de,
68
- "Ich habe vor, am Dienstag nächste Woche freizunehmen",
69
- new Date(2015, 3, 18),
70
- (result) => {
71
- expect(result.index).toBe(14);
72
- expect(result.text).toBe("am Dienstag nächste Woche");
73
-
74
- expect(result.start).not.toBeNull();
75
- expect(result.start.get("year")).toBe(2015);
76
- expect(result.start.get("month")).toBe(4);
77
- expect(result.start.get("day")).toBe(21);
78
- expect(result.start.get("weekday")).toBe(2);
79
-
80
- expect(result.start).toBeDate(new Date(2015, 3, 21, 12));
81
- }
82
- );
83
- });
84
-
85
- test("Test - Weekday with forward date option", () => {
86
- testSingleCase(
87
- chrono.de,
88
- "diesen Freitag bis diesen Montag",
89
- new Date(2016, 8 - 1, 4),
90
- { forwardDate: true },
91
- (result) => {
92
- expect(result.index).toBe(0);
93
- expect(result.text).toBe("diesen Freitag bis diesen Montag");
94
-
95
- expect(result.start).not.toBeNull();
96
- expect(result.start.get("year")).toBe(2016);
97
- expect(result.start.get("month")).toBe(8);
98
- expect(result.start.get("day")).toBe(5);
99
- expect(result.start.get("weekday")).toBe(5);
100
-
101
- expect(result.start.isCertain("day")).toBe(false);
102
- expect(result.start.isCertain("month")).toBe(false);
103
- expect(result.start.isCertain("year")).toBe(false);
104
- expect(result.start.isCertain("weekday")).toBe(true);
105
-
106
- expect(result.start).toBeDate(new Date(2016, 8 - 1, 5, 12));
107
-
108
- expect(result.end).not.toBeNull();
109
- expect(result.end.get("year")).toBe(2016);
110
- expect(result.end.get("month")).toBe(8);
111
- expect(result.end.get("day")).toBe(8);
112
- expect(result.end.get("weekday")).toBe(1);
113
-
114
- expect(result.end.isCertain("day")).toBe(false);
115
- expect(result.end.isCertain("month")).toBe(false);
116
- expect(result.end.isCertain("year")).toBe(false);
117
- expect(result.end.isCertain("weekday")).toBe(true);
118
-
119
- expect(result.end).toBeDate(new Date(2016, 8 - 1, 8, 12));
120
- }
121
- );
122
- });
123
-
124
- test("Test - Weekday Overlap", function () {
125
- testSingleCase(chrono.de, "Sonntag, den 7. Dezember 2014", new Date(2012, 7, 9), (result) => {
126
- expect(result.index).toBe(0);
127
- expect(result.text).toBe("Sonntag, den 7. Dezember 2014");
128
-
129
- expect(result.start).not.toBeNull();
130
- expect(result.start.get("year")).toBe(2014);
131
- expect(result.start.get("month")).toBe(12);
132
- expect(result.start.get("day")).toBe(7);
133
- expect(result.start.get("weekday")).toBe(0);
134
-
135
- expect(result.start.isCertain("day")).toBe(true);
136
- expect(result.start.isCertain("month")).toBe(true);
137
- expect(result.start.isCertain("year")).toBe(true);
138
- expect(result.start.isCertain("weekday")).toBe(true);
139
-
140
- expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
141
- });
142
-
143
- testSingleCase(chrono.de, "Sonntag 7.12.2014", new Date(2012, 7, 9), (result) => {
144
- expect(result.text).toBe("Sonntag 7.12.2014");
145
-
146
- expect(result.start.get("year")).toBe(2014);
147
- expect(result.start.get("month")).toBe(12);
148
- expect(result.start.get("day")).toBe(7);
149
- expect(result.start.get("weekday")).toBe(0);
150
-
151
- expect(result.start.isCertain("day")).toBe(true);
152
- expect(result.start.isCertain("month")).toBe(true);
153
- expect(result.start.isCertain("year")).toBe(true);
154
- expect(result.start.isCertain("weekday")).toBe(true);
155
-
156
- expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
157
- });
158
- });