UNPKG

8.59 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase } from "../test_util";
3
4test("Test - Single Expression", function () {
5 testSingleCase(chrono.nl, "maandag", new Date(2012, 7, 9), (result) => {
6 expect(result.index).toBe(0);
7 expect(result.text).toBe("maandag");
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(6);
13 expect(result.start.get("weekday")).toBe(1);
14
15 expect(result.start.isCertain("day")).toBe(false);
16 expect(result.start.isCertain("month")).toBe(false);
17 expect(result.start.isCertain("year")).toBe(false);
18 expect(result.start.isCertain("weekday")).toBe(true);
19
20 expect(result.start).toBeDate(new Date(2012, 7, 6, 12));
21 });
22
23 testSingleCase(chrono.nl, "maandag (forward dates only)", new Date(2012, 7, 9), { forwardDate: true }, (result) => {
24 expect(result.index).toBe(0);
25 expect(result.text).toBe("maandag");
26
27 expect(result.start).not.toBeNull();
28 expect(result.start.get("year")).toBe(2012);
29 expect(result.start.get("month")).toBe(8);
30 expect(result.start.get("day")).toBe(13);
31 expect(result.start.get("weekday")).toBe(1);
32
33 expect(result.start.isCertain("day")).toBe(false);
34 expect(result.start.isCertain("month")).toBe(false);
35 expect(result.start.isCertain("year")).toBe(false);
36 expect(result.start.isCertain("weekday")).toBe(true);
37
38 expect(result.start).toBeDate(new Date(2012, 7, 13, 12));
39 });
40
41 testSingleCase(chrono.nl, "donderdag", new Date(2012, 7, 9), (result) => {
42 expect(result.index).toBe(0);
43 expect(result.text).toBe("donderdag");
44
45 expect(result.start).not.toBeNull();
46 expect(result.start.get("year")).toBe(2012);
47 expect(result.start.get("month")).toBe(8);
48 expect(result.start.get("day")).toBe(9);
49 expect(result.start.get("weekday")).toBe(4);
50
51 expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
52 });
53
54 testSingleCase(chrono.nl, "zondag", new Date(2012, 7, 9), (result) => {
55 expect(result.index).toBe(0);
56 expect(result.text).toBe("zondag");
57
58 expect(result.start).not.toBeNull();
59 expect(result.start.get("year")).toBe(2012);
60 expect(result.start.get("month")).toBe(8);
61 expect(result.start.get("day")).toBe(12);
62 expect(result.start.get("weekday")).toBe(0);
63
64 expect(result.start).toBeDate(new Date(2012, 7, 12, 12));
65 });
66
67 testSingleCase(chrono.nl, "De deadline is vorige vrijdag...", new Date(2012, 7, 9), (result) => {
68 expect(result.index).toBe(15);
69 expect(result.text).toBe("vorige vrijdag");
70
71 expect(result.start).not.toBeNull();
72 expect(result.start.get("year")).toBe(2012);
73 expect(result.start.get("month")).toBe(8);
74 expect(result.start.get("day")).toBe(3);
75 expect(result.start.get("weekday")).toBe(5);
76
77 expect(result.start).toBeDate(new Date(2012, 7, 3, 12));
78 });
79
80 testSingleCase(chrono.nl, "De deadline is vorige vrijdag...", new Date(2012, 7, 12), (result) => {
81 expect(result.index).toBe(15);
82 expect(result.text).toBe("vorige vrijdag");
83
84 expect(result.start).not.toBeNull();
85 expect(result.start.get("year")).toBe(2012);
86 expect(result.start.get("month")).toBe(8);
87 expect(result.start.get("day")).toBe(10);
88 expect(result.start.get("weekday")).toBe(5);
89
90 expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
91 });
92
93 testSingleCase(
94 chrono.nl,
95 "Laten we een meeting hebben op volgende week vrijdag",
96 new Date(2015, 3, 16),
97 (result) => {
98 expect(result.index).toBe(28);
99 expect(result.text).toBe("op volgende week vrijdag");
100
101 expect(result.start).not.toBeNull();
102 expect(result.start.get("year")).toBe(2015);
103 expect(result.start.get("month")).toBe(4);
104 expect(result.start.get("day")).toBe(24);
105 expect(result.start.get("weekday")).toBe(5);
106
107 expect(result.start).toBeDate(new Date(2015, 3, 24, 12));
108 }
109 );
110
111 testSingleCase(chrono.nl, "Ik plan een vrije dag op volgende week dinsdag", new Date(2015, 3, 18), (result) => {
112 expect(result.index).toBe(22);
113 expect(result.text).toBe("op volgende week dinsdag");
114
115 expect(result.start).not.toBeNull();
116 expect(result.start.get("year")).toBe(2015);
117 expect(result.start.get("month")).toBe(4);
118 expect(result.start.get("day")).toBe(21);
119 expect(result.start.get("weekday")).toBe(2);
120
121 expect(result.start).toBeDate(new Date(2015, 3, 21, 12));
122 });
123});
124
125test("Test - Weekday With Casual Time", function () {
126 testSingleCase(chrono.nl, "Laten we op dinsdag ochtend afspreken", new Date(2015, 3, 18), (result) => {
127 expect(result.index).toBe(9);
128 expect(result.text).toBe("op dinsdag ochtend");
129
130 expect(result.start).not.toBeNull();
131 expect(result.start.get("year")).toBe(2015);
132 expect(result.start.get("month")).toBe(4);
133 expect(result.start.get("day")).toBe(21);
134 expect(result.start.get("weekday")).toBe(2);
135 expect(result.start.get("hour")).toBe(6);
136
137 expect(result.start).toBeDate(new Date(2015, 3, 21, 6));
138 });
139});
140
141test("Test - Weekday Overlap", function () {
142 testSingleCase(chrono.nl, "zondag, 7 december 2014", new Date(2012, 7, 9), (result) => {
143 expect(result.index).toBe(0);
144 expect(result.text).toBe("zondag, 7 december 2014");
145
146 expect(result.start).not.toBeNull();
147 expect(result.start.get("year")).toBe(2014);
148 expect(result.start.get("month")).toBe(12);
149 expect(result.start.get("day")).toBe(7);
150 expect(result.start.get("weekday")).toBe(0);
151
152 expect(result.start.isCertain("day")).toBe(true);
153 expect(result.start.isCertain("month")).toBe(true);
154 expect(result.start.isCertain("year")).toBe(true);
155 expect(result.start.isCertain("weekday")).toBe(true);
156
157 expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
158 });
159
160 testSingleCase(chrono.nl, "zondag 7/12/2014", new Date(2012, 7, 9), (result) => {
161 expect(result.index).toBe(0);
162 expect(result.text).toBe("zondag 7/12/2014");
163
164 expect(result.start).not.toBeNull();
165 expect(result.start.get("year")).toBe(2014);
166 expect(result.start.get("month")).toBe(12);
167 expect(result.start.get("day")).toBe(7);
168 expect(result.start.get("weekday")).toBe(0);
169
170 expect(result.start.isCertain("day")).toBe(true);
171 expect(result.start.isCertain("month")).toBe(true);
172 expect(result.start.isCertain("year")).toBe(true);
173 expect(result.start.isCertain("weekday")).toBe(true);
174
175 expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
176 });
177});
178
179test("Test - forward dates only option", function () {
180 testSingleCase(
181 chrono.nl,
182 "deze vrijdag tot deze maandag",
183 new Date(2016, 8 - 1, 4),
184 { forwardDate: true },
185 (result) => {
186 expect(result.index).toBe(0);
187 expect(result.text).toBe("deze vrijdag tot deze maandag");
188
189 expect(result.start).not.toBeNull();
190 expect(result.start.get("year")).toBe(2016);
191 expect(result.start.get("month")).toBe(8);
192 expect(result.start.get("day")).toBe(5);
193 expect(result.start.get("weekday")).toBe(5);
194
195 expect(result.start.isCertain("day")).toBe(false);
196 expect(result.start.isCertain("month")).toBe(false);
197 expect(result.start.isCertain("year")).toBe(false);
198 expect(result.start.isCertain("weekday")).toBe(true);
199
200 expect(result.start).toBeDate(new Date(2016, 8 - 1, 5, 12));
201
202 expect(result.end).not.toBeNull();
203 expect(result.end.get("year")).toBe(2016);
204 expect(result.end.get("month")).toBe(8);
205 expect(result.end.get("day")).toBe(8);
206 expect(result.end.get("weekday")).toBe(1);
207
208 expect(result.end.isCertain("day")).toBe(false);
209 expect(result.end.isCertain("month")).toBe(false);
210 expect(result.end.isCertain("year")).toBe(false);
211 expect(result.end.isCertain("weekday")).toBe(true);
212
213 expect(result.end).toBeDate(new Date(2016, 8 - 1, 8, 12));
214 }
215 );
216});