UNPKG

10.5 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase, testUnexpectedResult } from "../test_util";
3
4test("Test - Single expression", function () {
5 testSingleCase(chrono.de, "10. August 2012", new Date(2012, 7, 10), (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(10);
10
11 expect(result.index).toBe(0);
12 expect(result.text).toBe("10. August 2012");
13
14 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
15 });
16
17 testSingleCase(chrono.de, "10. August 113 v. Chr.", new Date(2012, 7, 10), (result) => {
18 expect(result.index).toBe(0);
19 expect(result.text).toBe("10. August 113 v. Chr.");
20
21 expect(result.start).not.toBeNull();
22 expect(result.start.get("year")).toBe(-113);
23 expect(result.start.get("month")).toBe(8);
24 expect(result.start.get("day")).toBe(10);
25
26 expect(result.start).toBeDate(new Date(-113, 8 - 1, 10, 12));
27 });
28
29 testSingleCase(chrono.de, "10. August 85 n. Chr.", new Date(2012, 7, 10), (result) => {
30 expect(result.index).toBe(0);
31 expect(result.text).toBe("10. August 85 n. Chr.");
32
33 expect(result.start).not.toBeNull();
34 expect(result.start.get("year")).toBe(85);
35 expect(result.start.get("month")).toBe(8);
36 expect(result.start.get("day")).toBe(10);
37
38 const resultDate = result.start.date();
39 const expectDate = new Date(85, 8 - 1, 10, 12);
40 expectDate.setFullYear(85);
41 expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
42 });
43
44 testSingleCase(chrono.de, "So 15.Sep", new Date(2013, 7, 10), (result) => {
45 expect(result.index).toBe(0);
46 expect(result.text).toBe("So 15.Sep");
47
48 expect(result.start).not.toBeNull();
49 expect(result.start.get("year")).toBe(2013);
50 expect(result.start.get("month")).toBe(9);
51 expect(result.start.get("day")).toBe(15);
52
53 expect(result.start).toBeDate(new Date(2013, 9 - 1, 15, 12));
54 });
55
56 testSingleCase(chrono.de, "SO 15.SEPT", new Date(2013, 7, 10), (result) => {
57 expect(result.index).toBe(0);
58 expect(result.text).toBe("SO 15.SEPT");
59
60 expect(result.start).not.toBeNull();
61 expect(result.start.get("year")).toBe(2013);
62 expect(result.start.get("month")).toBe(9);
63 expect(result.start.get("day")).toBe(15);
64
65 expect(result.start).toBeDate(new Date(2013, 9 - 1, 15, 12));
66 });
67
68 testSingleCase(chrono.de, "Die Deadline ist am 10. August", new Date(2012, 7, 10), (result) => {
69 expect(result.index).toBe(17);
70 expect(result.text).toBe("am 10. August");
71
72 expect(result.start).not.toBeNull();
73 expect(result.start.get("year")).toBe(2012);
74 expect(result.start.get("month")).toBe(8);
75 expect(result.start.get("day")).toBe(10);
76
77 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
78 });
79
80 testSingleCase(chrono.de, "Die Deadline ist am Dienstag, den 10. Januar", new Date(2012, 7, 10), (result) => {
81 expect(result.index).toBe(17);
82 expect(result.text).toBe("am Dienstag, den 10. Januar");
83
84 expect(result.start).not.toBeNull();
85 expect(result.start.get("year")).toBe(2013);
86 expect(result.start.get("month")).toBe(1);
87 expect(result.start.get("day")).toBe(10);
88 expect(result.start.get("weekday")).toBe(2);
89
90 expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
91 });
92
93 testSingleCase(chrono.de, "Die Deadline ist Di, 10. Januar", new Date(2012, 7, 10), (result) => {
94 expect(result.index).toBe(17);
95 expect(result.text).toBe("Di, 10. Januar");
96
97 expect(result.start).not.toBeNull();
98 expect(result.start.get("year")).toBe(2013);
99 expect(result.start.get("month")).toBe(1);
100 expect(result.start.get("day")).toBe(10);
101 expect(result.start.get("weekday")).toBe(2);
102
103 expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
104 });
105
106 testSingleCase(chrono.de, "31. März 2016", new Date(2012, 7, 10), (result) => {
107 expect(result.index).toBe(0);
108 expect(result.text).toBe("31. März 2016");
109
110 expect(result.start).not.toBeNull();
111 expect(result.start.get("year")).toBe(2016);
112 expect(result.start.get("month")).toBe(3);
113 expect(result.start.get("day")).toBe(31);
114
115 expect(result.start).toBeDate(new Date(2016, 3 - 1, 31, 12));
116 });
117
118 testSingleCase(chrono.de, "31.Maerz 2016", new Date(2012, 7, 10), (result) => {
119 expect(result.index).toBe(0);
120 expect(result.text).toBe("31.Maerz 2016");
121
122 expect(result.start).not.toBeNull();
123 expect(result.start.get("year")).toBe(2016);
124 expect(result.start.get("month")).toBe(3);
125 expect(result.start.get("day")).toBe(31);
126
127 expect(result.start).toBeDate(new Date(2016, 3 - 1, 31, 12));
128 });
129});
130
131test("Test - Range expression", function () {
132 testSingleCase(chrono.de, "10. - 22. August 2012", new Date(2012, 7, 10), (result) => {
133 expect(result.index).toBe(0);
134 expect(result.text).toBe("10. - 22. August 2012");
135
136 expect(result.start).not.toBeNull();
137 expect(result.start.get("year")).toBe(2012);
138 expect(result.start.get("month")).toBe(8);
139 expect(result.start.get("day")).toBe(10);
140
141 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
142
143 expect(result.end).not.toBeNull();
144 expect(result.end.get("year")).toBe(2012);
145 expect(result.end.get("month")).toBe(8);
146 expect(result.end.get("day")).toBe(22);
147
148 expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
149 });
150
151 testSingleCase(chrono.de, "10. bis 22. Oktober 2012", new Date(2012, 7, 10), (result) => {
152 expect(result.index).toBe(0);
153 expect(result.text).toBe("10. bis 22. Oktober 2012");
154
155 expect(result.start).not.toBeNull();
156 expect(result.start.get("year")).toBe(2012);
157 expect(result.start.get("month")).toBe(10);
158 expect(result.start.get("day")).toBe(10);
159
160 expect(result.start).toBeDate(new Date(2012, 10 - 1, 10, 12));
161
162 expect(result.end).not.toBeNull();
163 expect(result.end.get("year")).toBe(2012);
164 expect(result.end.get("month")).toBe(10);
165 expect(result.end.get("day")).toBe(22);
166
167 expect(result.end).toBeDate(new Date(2012, 10 - 1, 22, 12));
168 });
169
170 testSingleCase(chrono.de, "10. Oktober - 12. Dezember", new Date(2012, 7, 10), (result) => {
171 expect(result.index).toBe(0);
172 expect(result.text).toBe("10. Oktober - 12. Dezember");
173
174 expect(result.start).not.toBeNull();
175 expect(result.start.get("year")).toBe(2012);
176 expect(result.start.get("month")).toBe(10);
177 expect(result.start.get("day")).toBe(10);
178
179 expect(result.start).toBeDate(new Date(2012, 10 - 1, 10, 12));
180
181 expect(result.end).not.toBeNull();
182 expect(result.end.get("year")).toBe(2012);
183 expect(result.end.get("month")).toBe(12);
184 expect(result.end.get("day")).toBe(12);
185
186 expect(result.end).toBeDate(new Date(2012, 12 - 1, 12, 12));
187 });
188
189 testSingleCase(chrono.de, "10. August - 12. Oktober 2013", new Date(2012, 7, 10), (result) => {
190 expect(result.index).toBe(0);
191 expect(result.text).toBe("10. August - 12. Oktober 2013");
192
193 expect(result.start).not.toBeNull();
194 expect(result.start.get("year")).toBe(2013);
195 expect(result.start.get("month")).toBe(8);
196 expect(result.start.get("day")).toBe(10);
197
198 expect(result.start).toBeDate(new Date(2013, 8 - 1, 10, 12));
199
200 expect(result.end).not.toBeNull();
201 expect(result.end.get("year")).toBe(2013);
202 expect(result.end.get("month")).toBe(10);
203 expect(result.end.get("day")).toBe(12);
204
205 expect(result.end).toBeDate(new Date(2013, 10 - 1, 12, 12));
206 });
207
208 testSingleCase(chrono.de, "10. jänner 2012", new Date(2012, 7, 10), (result) => {
209 expect(result.start).not.toBeNull();
210 expect(result.start.get("year")).toBe(2012);
211 expect(result.start.get("month")).toBe(1);
212 expect(result.start.get("day")).toBe(10);
213
214 expect(result.index).toBe(0);
215 expect(result.text).toBe("10. jänner 2012");
216
217 expect(result.start).toBeDate(new Date(2012, 1 - 1, 10, 12));
218 });
219});
220
221test("Test - Combined expression", function () {
222 testSingleCase(chrono.de, "12. Juli um 19:00", new Date(2012, 7, 10), (result) => {
223 expect(result.index).toBe(0);
224 expect(result.text).toBe("12. Juli um 19:00");
225
226 expect(result.start).not.toBeNull();
227 expect(result.start.get("year")).toBe(2012);
228 expect(result.start.get("month")).toBe(7);
229 expect(result.start.get("day")).toBe(12);
230
231 expect(result.start).toBeDate(new Date(2012, 7 - 1, 12, 19, 0));
232 });
233
234 testSingleCase(chrono.de, "12. Juli um 19 Uhr", new Date(2012, 7, 10), (result) => {
235 expect(result.index).toBe(0);
236 expect(result.text).toBe("12. Juli um 19 Uhr");
237
238 expect(result.start).not.toBeNull();
239 expect(result.start.get("year")).toBe(2012);
240 expect(result.start.get("month")).toBe(7);
241 expect(result.start.get("day")).toBe(12);
242
243 expect(result.start).toBeDate(new Date(2012, 7 - 1, 12, 19, 0));
244 });
245
246 testSingleCase(chrono.de, "12. Juli um 19:53 Uhr", new Date(2012, 7, 10), (result) => {
247 expect(result.index).toBe(0);
248 expect(result.text).toBe("12. Juli um 19:53 Uhr");
249
250 expect(result.start).not.toBeNull();
251 expect(result.start.get("year")).toBe(2012);
252 expect(result.start.get("month")).toBe(7);
253 expect(result.start.get("day")).toBe(12);
254
255 expect(result.start).toBeDate(new Date(2012, 7 - 1, 12, 19, 53));
256 });
257
258 testSingleCase(chrono.de, "5. Juni 12:00", new Date(2012, 7, 10), (result) => {
259 expect(result.index).toBe(0);
260 expect(result.text).toBe("5. Juni 12:00");
261
262 expect(result.start).not.toBeNull();
263 expect(result.start.get("year")).toBe(2012);
264 expect(result.start.get("month")).toBe(6);
265 expect(result.start.get("day")).toBe(5);
266
267 expect(result.start).toBeDate(new Date(2012, 6 - 1, 5, 12, 0));
268 });
269});
270
271test("Test - Impossible Dates (Casual Mode)", function () {
272 testUnexpectedResult(chrono.de, "32. Oktober 2015");
273});