UNPKG

9.29 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase } from "../test_util";
3
4test("Test - The normal within expression", () => {
5 testSingleCase(chrono.nl, "we have to make something binnen 5 dagen.", new Date(2012, 7, 10), (result) => {
6 expect(result.index).toBe(26);
7 expect(result.text).toBe("binnen 5 dagen");
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.nl, "we have to make something binnen vijf dagen.", new Date(2012, 7, 10), (result) => {
18 expect(result.index).toBe(26);
19 expect(result.text).toBe("binnen vijf dagen");
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));
27 });
28
29 testSingleCase(chrono.nl, "we have to make something binnen de 10 dagen", new Date(2012, 7, 10), (result) => {
30 expect(result.index).toBe(26);
31 expect(result.text).toBe("binnen de 10 dagen");
32
33 expect(result.start).not.toBeNull();
34 expect(result.start.get("year")).toBe(2012);
35 expect(result.start.get("month")).toBe(8);
36 expect(result.start.get("day")).toBe(20);
37
38 expect(result.start).toBeDate(new Date(2012, 8 - 1, 20));
39 });
40
41 testSingleCase(chrono.nl, "binnen 5 minuten", new Date(2012, 7, 10, 12, 14), (result) => {
42 expect(result.index).toBe(0);
43 expect(result.text).toBe("binnen 5 minuten");
44
45 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
46 });
47
48 testSingleCase(chrono.nl, "wait voor 5 minuten", new Date(2012, 7, 10, 12, 14), (result) => {
49 expect(result.index).toBe(5);
50 expect(result.text).toBe("voor 5 minuten");
51
52 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
53 });
54
55 testSingleCase(chrono.nl, "binnen 1 uur", new Date(2012, 7, 10, 12, 14), (result) => {
56 expect(result.index).toBe(0);
57 expect(result.text).toBe("binnen 1 uur");
58
59 expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
60 });
61
62 testSingleCase(chrono.nl, "Binnen 5 minuten ben ik thuis", new Date(2012, 7, 10, 12, 14), (result) => {
63 expect(result.index).toBe(0);
64 expect(result.text).toBe("Binnen 5 minuten");
65
66 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
67 });
68
69 testSingleCase(
70 chrono.nl,
71 "Binnen de 5 minuten moet een auto zich verzetten",
72 new Date(2012, 7, 10, 12, 14),
73 (result) => {
74 expect(result.index).toBe(0);
75 expect(result.text).toBe("Binnen de 5 minuten");
76
77 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
78 }
79 );
80
81 testSingleCase(
82 chrono.nl,
83 "Binnen 5 seconden moet een auto zich verzetten",
84 new Date(2012, 7, 10, 12, 14),
85 (result) => {
86 expect(result.index).toBe(0);
87 expect(result.text).toBe("Binnen 5 seconden");
88
89 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 5));
90 }
91 );
92
93 testSingleCase(chrono.nl, "Binnen de 2 weken", new Date(2012, 7, 10, 12, 14), (result) => {
94 expect(result.index).toBe(0);
95 expect(result.text).toBe("Binnen de 2 weken");
96
97 expect(result.start).toBeDate(new Date(2012, 7, 24, 12, 14));
98 });
99
100 testSingleCase(chrono.nl, "Binnen een maand", new Date(2012, 7, 10, 12, 14), (result) => {
101 expect(result.index).toBe(0);
102 expect(result.text).toBe("Binnen een maand");
103
104 expect(result.start).toBeDate(new Date(2012, 8, 10, 12, 14));
105 });
106
107 testSingleCase(chrono.nl, "Binnen een jaar", new Date(2012, 7, 10, 12, 14), (result) => {
108 expect(result.index).toBe(0);
109 expect(result.text).toBe("Binnen een jaar");
110
111 expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
112 });
113
114 testSingleCase(chrono.nl, "Binnen 5 minuten A car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
115 expect(result.index).toBe(0);
116 expect(result.text).toBe("Binnen 5 minuten");
117
118 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
119 });
120
121 testSingleCase(chrono.nl, "Binnen 5 min a car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
122 expect(result.index).toBe(0);
123 expect(result.text).toBe("Binnen 5 min");
124
125 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
126 });
127
128 testSingleCase(chrono.nl, "binnen een week", new Date(2016, 10 - 1, 1), (result, text) => {
129 expect(result.text).toBe(text);
130 expect(result.start.get("year")).toBe(2016);
131 expect(result.start.get("month")).toBe(10);
132 expect(result.start.get("day")).toBe(8);
133 });
134});
135
136test("Test - Single Expression (Implied)", () => {
137 testSingleCase(chrono.nl, "Binnen de 30 dagen", new Date(2012, 7, 10, 12, 14), (result) => {
138 expect(!result.start.isCertain("year")).not.toBeNull();
139 expect(!result.start.isCertain("month")).not.toBeNull();
140 expect(!result.start.isCertain("day")).not.toBeNull();
141 expect(!result.start.isCertain("hour")).not.toBeNull();
142 expect(!result.start.isCertain("minute")).not.toBeNull();
143 expect(!result.start.isCertain("second")).not.toBeNull();
144 });
145});
146
147test("Test - Implied time values", () => {
148 testSingleCase(chrono.nl, "Binnen 24 uur", new Date(2020, 7 - 1, 10, 12, 14), (result) => {
149 expect(result.start.get("hour")).toBe(12);
150 expect(result.start.get("minute")).toBe(14);
151 expect(result.start.get("day")).toBe(11);
152 expect(result.start.get("month")).toBe(7);
153 expect(result.start.get("year")).toBe(2020);
154 });
155
156 testSingleCase(chrono.nl, "binnen een dag", new Date(2020, 7 - 1, 10, 12, 14), (result) => {
157 expect(result.start.get("hour")).toBe(12);
158 expect(result.start.get("minute")).toBe(14);
159 expect(result.start.get("day")).toBe(11);
160 expect(result.start.get("month")).toBe(7);
161 expect(result.start.get("year")).toBe(2020);
162 });
163});
164
165test("Test - Time units' certainty", () => {
166 testSingleCase(chrono.nl, "binnen 2 minuten", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
167 expect(result.text).toBe(text);
168 expect(result.start.get("year")).toBe(2016);
169 expect(result.start.get("month")).toBe(10);
170 expect(result.start.get("day")).toBe(1);
171 expect(result.start.get("hour")).toBe(14);
172 expect(result.start.get("minute")).toBe(54);
173
174 expect(result.start.isCertain("year")).toBeTruthy();
175 expect(result.start.isCertain("month")).toBeTruthy();
176 expect(result.start.isCertain("day")).toBeTruthy();
177 expect(result.start.isCertain("hour")).toBeTruthy();
178 expect(result.start.isCertain("minute")).toBeTruthy();
179 });
180
181 testSingleCase(chrono.nl, "binnen 2 uur", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
182 expect(result.text).toBe(text);
183 expect(result.start.get("year")).toBe(2016);
184 expect(result.start.get("month")).toBe(10);
185 expect(result.start.get("day")).toBe(1);
186 expect(result.start.get("hour")).toBe(16);
187 expect(result.start.get("minute")).toBe(52);
188
189 expect(result.start.isCertain("year")).toBeTruthy();
190 expect(result.start.isCertain("month")).toBeTruthy();
191 expect(result.start.isCertain("day")).toBeTruthy();
192 expect(result.start.isCertain("hour")).toBeTruthy();
193 expect(result.start.isCertain("minute")).toBeTruthy();
194 });
195
196 testSingleCase(chrono.nl, "binnen de 12 maand", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
197 expect(result.text).toBe(text);
198 expect(result.start.get("year")).toBe(2017);
199 expect(result.start.get("month")).toBe(10);
200 expect(result.start.get("day")).toBe(1);
201 expect(result.start.get("hour")).toBe(14);
202 expect(result.start.get("minute")).toBe(52);
203
204 expect(result.start.isCertain("year")).toBeTruthy();
205 expect(result.start.isCertain("month")).toBeTruthy();
206 expect(result.start.isCertain("day")).toBeFalsy();
207 expect(result.start.isCertain("hour")).toBeFalsy();
208 expect(result.start.isCertain("minute")).toBeFalsy();
209 });
210
211 testSingleCase(chrono.nl, "binnen de 3 dagen", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
212 expect(result.text).toBe(text);
213 expect(result.start.get("year")).toBe(2016);
214 expect(result.start.get("month")).toBe(10);
215 expect(result.start.get("day")).toBe(4);
216 expect(result.start.get("hour")).toBe(14);
217 expect(result.start.get("minute")).toBe(52);
218
219 expect(result.start.isCertain("year")).toBeTruthy();
220 expect(result.start.isCertain("month")).toBeTruthy();
221 expect(result.start.isCertain("day")).toBeTruthy();
222 expect(result.start.isCertain("hour")).toBeFalsy();
223 expect(result.start.isCertain("minute")).toBeFalsy();
224 });
225});