UNPKG

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