1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase } from "../test_util";
|
3 |
|
4 | test("Test - Later Expression", function () {
|
5 |
|
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 |
|
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 |
|
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 |
|
53 | test("Test - From now Expression", () => {
|
54 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
231 | test("Test - Strict mode", function () {
|
232 |
|
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 |
|
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 | });
|