UNPKG

11.8 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase } from "../test_util";
3
4test("Test - Single Expression", function () {
5 testSingleCase(chrono.fr, "La deadline est maintenant", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6 expect(result.index).toBe(16);
7 expect(result.text).toBe("maintenant");
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(10);
13 expect(result.start.get("hour")).toBe(8);
14 expect(result.start.get("minute")).toBe(9);
15 expect(result.start.get("second")).toBe(10);
16 expect(result.start.get("millisecond")).toBe(11);
17
18 expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
19 });
20
21 testSingleCase(chrono.fr, "La deadline est aujourd'hui", new Date(2012, 7, 10, 12), (result) => {
22 expect(result.index).toBe(16);
23 expect(result.text).toBe("aujourd'hui");
24
25 expect(result.start).not.toBeNull();
26 expect(result.start.get("year")).toBe(2012);
27 expect(result.start.get("month")).toBe(8);
28 expect(result.start.get("day")).toBe(10);
29
30 expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
31 });
32
33 testSingleCase(chrono.fr, "La deadline est demain", new Date(2012, 7, 10, 12), (result) => {
34 expect(result.index).toBe(16);
35 expect(result.text).toBe("demain");
36
37 expect(result.start).not.toBeNull();
38 expect(result.start.get("year")).toBe(2012);
39 expect(result.start.get("month")).toBe(8);
40 expect(result.start.get("day")).toBe(11);
41
42 expect(result.start).toBeDate(new Date(2012, 7, 11, 12));
43 });
44
45 testSingleCase(chrono.fr, "La deadline est demain", new Date(2012, 7, 10, 1), (result) => {
46 expect(result.start).toBeDate(new Date(2012, 7, 11, 1));
47 });
48
49 testSingleCase(chrono.fr, "La deadline était hier", new Date(2012, 7, 10, 12), (result) => {
50 expect(result.index).toBe(18);
51 expect(result.text).toBe("hier");
52
53 expect(result.start).not.toBeNull();
54 expect(result.start.get("year")).toBe(2012);
55 expect(result.start.get("month")).toBe(8);
56 expect(result.start.get("day")).toBe(9);
57
58 expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
59 });
60
61 testSingleCase(chrono.fr, "La deadline était la veille", new Date(2012, 7, 10, 12), (result) => {
62 expect(result.index).toBe(18);
63 expect(result.text).toBe("la veille");
64
65 expect(result.start).not.toBeNull();
66 expect(result.start.get("year")).toBe(2012);
67 expect(result.start.get("month")).toBe(8);
68 expect(result.start.get("day")).toBe(9);
69 expect(result.start.get("hour")).toBe(0);
70
71 expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
72 });
73
74 testSingleCase(chrono.fr, "La deadline est ce matin", new Date(2012, 7, 10, 12), (result) => {
75 expect(result.index).toBe(16);
76 expect(result.text).toBe("ce matin");
77
78 expect(result.start).not.toBeNull();
79 expect(result.start.get("year")).toBe(2012);
80 expect(result.start.get("month")).toBe(8);
81 expect(result.start.get("day")).toBe(10);
82 expect(result.start.get("hour")).toBe(8);
83
84 expect(result.start).toBeDate(new Date(2012, 7, 10, 8));
85 });
86
87 testSingleCase(chrono.fr, "La deadline est cet après-midi", new Date(2012, 7, 10, 12), (result) => {
88 expect(result.index).toBe(16);
89 expect(result.text).toBe("cet après-midi");
90
91 expect(result.start).not.toBeNull();
92 expect(result.start.get("year")).toBe(2012);
93 expect(result.start.get("month")).toBe(8);
94 expect(result.start.get("day")).toBe(10);
95 expect(result.start.get("hour")).toBe(14);
96
97 expect(result.start).toBeDate(new Date(2012, 7, 10, 14));
98 });
99
100 testSingleCase(chrono.fr, "La deadline est cet aprem", new Date(2012, 7, 10, 12), (result) => {
101 expect(result.index).toBe(16);
102 expect(result.text).toBe("cet aprem");
103
104 expect(result.start).not.toBeNull();
105 expect(result.start.get("year")).toBe(2012);
106 expect(result.start.get("month")).toBe(8);
107 expect(result.start.get("day")).toBe(10);
108 expect(result.start.get("hour")).toBe(14);
109
110 expect(result.start).toBeDate(new Date(2012, 7, 10, 14));
111 });
112
113 testSingleCase(chrono.fr, "La deadline est ce soir", new Date(2012, 7, 10, 12), (result) => {
114 expect(result.index).toBe(16);
115 expect(result.text).toBe("ce soir");
116
117 expect(result.start).not.toBeNull();
118 expect(result.start.get("year")).toBe(2012);
119 expect(result.start.get("month")).toBe(8);
120 expect(result.start.get("day")).toBe(10);
121 expect(result.start.get("hour")).toBe(18);
122
123 expect(result.start).toBeDate(new Date(2012, 7, 10, 18));
124 });
125
126 testSingleCase(chrono.fr, "a midi", (result, text) => {
127 expect(result.text).toBe(text);
128 expect(result.start.get("hour")).toBe(12);
129 });
130
131 testSingleCase(chrono.fr, "à minuit", (result, text) => {
132 expect(result.text).toBe(text);
133 expect(result.start.get("hour")).toBe(0);
134 });
135
136 testSingleCase(chrono.fr, "Du 24 août 2023 au 26 août 2023", (result) => {
137 expect(result.text).toBe("24 août 2023 au 26 août 2023");
138 expect(result.start.get("year")).toBe(2023);
139 expect(result.start.get("month")).toBe(8);
140 expect(result.start.get("day")).toBe(24);
141 expect(result.end.get("year")).toBe(2023);
142 expect(result.end.get("month")).toBe(8);
143 expect(result.end.get("day")).toBe(26);
144 });
145});
146
147test("Test - Combined Expression", function () {
148 testSingleCase(chrono.fr, "La deadline est aujourd'hui 17:00", new Date(2012, 7, 10, 12), (result) => {
149 expect(result.index).toBe(16);
150 expect(result.text).toBe("aujourd'hui 17:00");
151
152 expect(result.start).not.toBeNull();
153 expect(result.start.get("year")).toBe(2012);
154 expect(result.start.get("month")).toBe(8);
155 expect(result.start.get("day")).toBe(10);
156 expect(result.start.get("hour")).toBe(17);
157
158 expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
159 });
160
161 testSingleCase(chrono.fr, "La deadline est demain 17:00", new Date(2012, 7, 10, 12), (result) => {
162 expect(result.index).toBe(16);
163 expect(result.text).toBe("demain 17:00");
164
165 expect(result.start).not.toBeNull();
166 expect(result.start.get("year")).toBe(2012);
167 expect(result.start.get("month")).toBe(8);
168 expect(result.start.get("day")).toBe(11);
169 expect(result.start.get("hour")).toBe(17);
170
171 expect(result.start).toBeDate(new Date(2012, 7, 11, 17));
172 });
173
174 testSingleCase(chrono.fr, "La deadline est demain matin 11h", new Date(2012, 7, 10, 12), (result) => {
175 expect(result.index).toBe(16);
176 expect(result.text).toBe("demain matin 11h");
177
178 expect(result.start).not.toBeNull();
179 expect(result.start.get("year")).toBe(2012);
180 expect(result.start.get("month")).toBe(8);
181 expect(result.start.get("day")).toBe(11);
182 expect(result.start.get("hour")).toBe(11);
183
184 expect(result.start).toBeDate(new Date(2012, 7, 11, 11));
185 });
186});
187
188//
189// test('Test - Random text', function() {
190//
191// var text = "cette nuit";
192// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
193// expect(result.text).toBe(text);
194// expect(result.start.get('year')).toBe(2012);
195// expect(result.start.get('month')).toBe(1);
196// expect(result.start.get('day')).toBe(1);
197// expect(result.start.get('hour')).toBe(22);
198// expect(result.start.get('meridiem') ).toBe(1);
199//
200// var text = "ce soir 8pm";
201// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
202// expect(result.text).toBe(text);
203// expect(result.start.get('hour') ).toBe(20);
204// expect(result.start.get('year') ).toBe(2012);
205// expect(result.start.get('month')).toBe(1);
206// expect(result.start.get('day') ).toBe(1);
207// expect(result.start.get('meridiem') ).toBe(1);
208//
209// var text = "ce soir 20h";
210// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
211// expect(result.text).toBe(text);
212// expect(result.start.get('hour') ).toBe(20);
213// expect(result.start.get('year') ).toBe(2012);
214// expect(result.start.get('month')).toBe(1);
215// expect(result.start.get('day') ).toBe(1);
216// expect(result.start.get('meridiem') ).toBe(1);
217//
218// var text = "ce soir 20:00";
219// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
220// expect(result.text).toBe(text);
221// expect(result.start.get('hour') ).toBe(20);
222// expect(result.start.get('year') ).toBe(2012);
223// expect(result.start.get('month')).toBe(1);
224// expect(result.start.get('day') ).toBe(1);
225// expect(result.start.get('meridiem') ).toBe(1);
226//
227// var text = "ce soir 20h00";
228// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
229// expect(result.text).toBe(text);
230// expect(result.start.get('hour') ).toBe(20);
231// expect(result.start.get('year') ).toBe(2012);
232// expect(result.start.get('month')).toBe(1);
233// expect(result.start.get('day') ).toBe(1);
234// expect(result.start.get('meridiem') ).toBe(1);
235//
236// var text = "ce soir 20h00m00";
237// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
238// expect(result.text).toBe(text);
239// expect(result.start.get('hour') ).toBe(20);
240// expect(result.start.get('year') ).toBe(2012);
241// expect(result.start.get('month')).toBe(1);
242// expect(result.start.get('day') ).toBe(1);
243// expect(result.start.get('meridiem') ).toBe(1);
244//
245// var text = "ce soir 20h00m00s";
246// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
247// expect(result.text).toBe(text);
248// expect(result.start.get('hour') ).toBe(20);
249// expect(result.start.get('year') ).toBe(2012);
250// expect(result.start.get('month')).toBe(1);
251// expect(result.start.get('day') ).toBe(1);
252// expect(result.start.get('meridiem') ).toBe(1);
253//
254// var text = "Ce soir à 20h";
255// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
256// expect(result.text).toBe(text);
257// expect(result.start.get('hour') ).toBe(20);
258// expect(result.start.get('year') ).toBe(2012);
259// expect(result.start.get('month')).toBe(1);
260// expect(result.start.get('day') ).toBe(1);
261// expect(result.start.get('meridiem') ).toBe(1);
262//
263// var text = "Ce soir a 20h";
264// var result = chrono.fr.parse(text, new Date(2012, 1-1, 1, 12))[0];
265// expect(result.text).toBe(text);
266// expect(result.start.get('hour') ).toBe(20);
267// expect(result.start.get('year') ).toBe(2012);
268// expect(result.start.get('month')).toBe(1);
269// expect(result.start.get('day') ).toBe(1);
270// expect(result.start.get('meridiem') ).toBe(1);
271//
272//
273// var text = "jeu";
274// var result = chrono.fr.parse(text)[0];
275// expect(result.text).toBe(text);
276// expect(result.start.get('weekday')).toBe(4);
277//
278//
279// var text = "sam";
280// var result = chrono.fr.parse(text)[0];
281// expect(result.text).toBe(text);
282// expect(result.start.get('weekday')).toBe(6)
283// });
284//
285//
286// test('Test - Random negative text', function() {
287//
288// var text = "pasaujourd'hui";
289// var results = chrono.fr.parse(text);
290// expect(results.length).toBe(0);
291//
292// var text = "pashier";
293// var results = chrono.fr.parse(text);
294// expect(results.length).toBe(0);
295//
296// var text = "maintenanter";
297// var results = chrono.fr.parse(text);
298// expect(results.length).toBe(0);
299//
300// });