UNPKG

9.89 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase } from "../test_util";
3
4test("Test - Later Expression", function () {
5 // 2 days later
6 testSingleCase(chrono.nl, "2 dagen later", new Date(2012, 7, 10, 12), (result) => {
7 expect(result.start).not.toBeNull();
8 expect(result.start.get("year")).toBe(2012);
9 expect(result.start.get("month")).toBe(8);
10 expect(result.start.get("day")).toBe(12);
11
12 expect(result.index).toBe(0);
13 expect(result.text).toBe("2 dagen later");
14
15 expect(result.start.isCertain("day")).toBe(true);
16 expect(result.start.isCertain("month")).toBe(true);
17
18 expect(result.start).toBeDate(new Date(2012, 8 - 1, 12, 12));
19 });
20
21 // 5 minutes later
22 testSingleCase(chrono.nl, "5 minuten later", new Date(2012, 7, 10, 10, 0), (result) => {
23 expect(result.start).not.toBeNull();
24 expect(result.start.get("year")).toBe(2012);
25 expect(result.start.get("month")).toBe(8);
26 expect(result.start.get("day")).toBe(10);
27 expect(result.start.get("hour")).toBe(10);
28 expect(result.start.get("minute")).toBe(5);
29
30 expect(result.index).toBe(0);
31 expect(result.text).toBe("5 minuten later");
32
33 expect(result.start.isCertain("hour")).toBe(true);
34 expect(result.start.isCertain("minute")).toBe(true);
35
36 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 10, 5));
37 });
38
39 // 3 week later
40 testSingleCase(chrono.nl, "3 weken later", new Date(2012, 7 - 1, 10, 10, 0), (result) => {
41 expect(result.start).not.toBeNull();
42 expect(result.start.get("year")).toBe(2012);
43 expect(result.start.get("month")).toBe(7);
44 expect(result.start.get("day")).toBe(31);
45
46 expect(result.index).toBe(0);
47 expect(result.text).toBe("3 weken later");
48
49 expect(result.start).toBeDate(new Date(2012, 7 - 1, 31, 10, 0));
50 });
51});
52
53test("Test - From now Expression", () => {
54 // 5 days from now, we did something
55 testSingleCase(chrono.nl, "5 dagen vanaf nu we hebben iets gedaan", new Date(2012, 7, 10), (result) => {
56 expect(result.start).not.toBeNull();
57 expect(result.start.get("year")).toBe(2012);
58 expect(result.start.get("month")).toBe(8);
59 expect(result.start.get("day")).toBe(15);
60
61 expect(result.index).toBe(0);
62 expect(result.text).toBe("5 dagen vanaf nu");
63
64 expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
65 });
66
67 // 10 days from now, we did something
68 testSingleCase(chrono.nl, "10 dagen vanaf nu we hebben iets gedaan", new Date(2012, 7, 10), (result) => {
69 expect(result.start).not.toBeNull();
70 expect(result.start.get("year")).toBe(2012);
71 expect(result.start.get("month")).toBe(8);
72 expect(result.start.get("day")).toBe(20);
73
74 expect(result.index).toBe(0);
75 expect(result.text).toBe("10 dagen vanaf nu");
76
77 expect(result.start).toBeDate(new Date(2012, 8 - 1, 20));
78 });
79
80 // 15 minute from now
81 testSingleCase(chrono.nl, "15 minuten vanaf nu", new Date(2012, 7, 10, 12, 14), (result) => {
82 expect(result.index).toBe(0);
83 expect(result.text).toBe("15 minuten vanaf nu");
84 expect(result.start.get("hour")).toBe(12);
85 expect(result.start.get("minute")).toBe(29);
86
87 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 29));
88 });
89
90 // 15 minutes earlier
91 testSingleCase(chrono.nl, "15 minuten eerder", new Date(2012, 7, 10, 12, 14), (result) => {
92 expect(result.index).toBe(0);
93 expect(result.text).toBe("15 minuten eerder");
94 expect(result.start.get("hour")).toBe(11);
95 expect(result.start.get("minute")).toBe(59);
96
97 expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
98 });
99
100 // 15 minute out
101 testSingleCase(chrono.nl, "15 minuten uit", new Date(2012, 7, 10, 12, 14), (result) => {
102 expect(result.index).toBe(0);
103 expect(result.text).toBe("15 minuten uit");
104 expect(result.start.get("hour")).toBe(12);
105 expect(result.start.get("minute")).toBe(29);
106
107 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 29));
108 });
109
110 // 12 hours from now
111 testSingleCase(chrono.nl, " 12 uur vanaf nu", new Date(2012, 7, 10, 12, 14), (result) => {
112 expect(result.index).toBe(3);
113 expect(result.text).toBe("12 uur vanaf nu");
114 expect(result.start.get("day")).toBe(11);
115 expect(result.start.get("hour")).toBe(0);
116 expect(result.start.get("minute")).toBe(14);
117
118 expect(result.start).toBeDate(new Date(2012, 7, 11, 0, 14));
119 });
120
121 // half an hour from now
122 testSingleCase(chrono.nl, " half uur vanaf nu", new Date(2012, 7, 10, 12, 14), (result) => {
123 expect(result.text).toBe("half uur vanaf nu");
124 expect(result.index).toBe(3);
125 expect(result.start.get("hour")).toBe(12);
126 expect(result.start.get("minute")).toBe(44);
127
128 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 44));
129 });
130
131 // 12 hours from now I did something
132 testSingleCase(chrono.nl, "Over 12 uur heb ik iets gedaan", new Date(2012, 7, 10, 12, 14), (result) => {
133 expect(result.index).toBe(0);
134 expect(result.text).toBe("Over 12 uur");
135 expect(result.start.get("day")).toBe(11);
136 expect(result.start.get("hour")).toBe(0);
137 expect(result.start.get("minute")).toBe(14);
138
139 expect(result.start).toBeDate(new Date(2012, 7, 11, 0, 14));
140 });
141
142 // 12 seconds from now I did something
143 testSingleCase(chrono.nl, "Over 12 seconden heb ik iets gedaan", new Date(2012, 7, 10, 12, 14), (result) => {
144 expect(result.index).toBe(0);
145 expect(result.text).toBe("Over 12 seconden");
146 expect(result.start.get("hour")).toBe(12);
147 expect(result.start.get("minute")).toBe(14);
148 expect(result.start.get("second")).toBe(12);
149
150 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 12));
151 });
152
153 // three seconds from now I did something
154 testSingleCase(chrono.nl, "over drie seconden heb ik iets gedaan", new Date(2012, 7, 10, 12, 14), (result) => {
155 expect(result.index).toBe(0);
156 expect(result.text).toBe("over drie seconden");
157 expect(result.start.get("hour")).toBe(12);
158 expect(result.start.get("minute")).toBe(14);
159 expect(result.start.get("second")).toBe(3);
160
161 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 3));
162 });
163
164 // 5 Days from now, we did something
165 testSingleCase(chrono.nl, "Over 5 dagen hebben we iets gedaan", new Date(2012, 7, 10), (result) => {
166 expect(result.start).not.toBeNull();
167 expect(result.start.get("year")).toBe(2012);
168 expect(result.start.get("month")).toBe(8);
169 expect(result.start.get("day")).toBe(15);
170
171 expect(result.index).toBe(0);
172 expect(result.text).toBe("Over 5 dagen");
173
174 expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
175 });
176
177 // half An hour from now
178 testSingleCase(chrono.nl, " half uur vanaf nu", new Date(2012, 7, 10, 12, 14), (result) => {
179 expect(result.index).toBe(3);
180 expect(result.text).toBe("half uur vanaf nu");
181 expect(result.start.get("hour")).toBe(12);
182 expect(result.start.get("minute")).toBe(44);
183
184 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 44));
185 });
186
187 // A days from now, we did something
188 testSingleCase(chrono.nl, "Over een dag hebben we iets gedaan", new Date(2012, 7, 10), (result) => {
189 expect(result.start).not.toBeNull();
190 expect(result.start.get("year")).toBe(2012);
191 expect(result.start.get("month")).toBe(8);
192 expect(result.start.get("day")).toBe(11);
193
194 expect(result.index).toBe(0);
195 expect(result.text).toBe("Over een dag");
196
197 expect(result.start).toBeDate(new Date(2012, 8 - 1, 11));
198 });
199
200 // a min out
201 testSingleCase(chrono.nl, "een minuutje uit", new Date(2012, 7, 10, 12, 14), (result) => {
202 expect(result.index).toBe(0);
203 expect(result.text).toBe("een minuutje uit");
204 expect(result.start.get("hour")).toBe(12);
205 expect(result.start.get("minute")).toBe(15);
206
207 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 15));
208 });
209
210 // in 1 hour
211 testSingleCase(chrono.nl, "in 1 uur", new Date(2012, 7, 10, 12, 14), (result) => {
212 expect(result.index).toBe(0);
213 expect(result.text).toBe("in 1 uur");
214 expect(result.start.get("hour")).toBe(13);
215 expect(result.start.get("minute")).toBe(14);
216
217 expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
218 });
219
220 // in 1.5 hours
221 testSingleCase(chrono.nl, "over 1,5 uur", new Date(2012, 7, 10, 12, 40), (result) => {
222 expect(result.index).toBe(0);
223 expect(result.text).toBe("over 1,5 uur");
224 expect(result.start.get("hour")).toBe(14);
225 expect(result.start.get("minute")).toBe(10);
226
227 expect(result.start).toBeDate(new Date(2012, 7, 10, 14, 10));
228 });
229});
230
231test("Test - Strict mode", function () {
232 // 15 minutes from now
233 testSingleCase(chrono.nl.strict, "15 minuten vanaf nu", new Date(2012, 7, 10, 12, 14), (result, text) => {
234 expect(result.text).toBe(text);
235 expect(result.start.get("hour")).toBe(12);
236 expect(result.start.get("minute")).toBe(29);
237
238 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 29));
239 });
240
241 // 25 minutes later
242 testSingleCase(chrono.nl.strict, "25 minuten later", new Date(2012, 7, 10, 12, 40), (result) => {
243 expect(result.index).toBe(0);
244 expect(result.text).toBe("25 minuten later");
245 expect(result.start.get("hour")).toBe(13);
246 expect(result.start.get("minute")).toBe(5);
247
248 expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 5));
249 });
250});