1 | import * as chrono from "../../src";
|
2 | import { testSingleCase } from "../test_util";
|
3 |
|
4 | test("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 |
|
136 | test("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 |
|
147 | test("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 |
|
165 | test("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 | });
|