UNPKG

7.85 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase, testUnexpectedResult, testWithExpectedDate } from "../test_util";
3
4test("Test - Parsing Offset Expression", function () {
5 testSingleCase(chrono.nl, " 04/2016 ", new Date(2012, 7, 10), (result) => {
6 expect(result.index).toBe(4);
7 expect(result.text).toBe("04/2016");
8 });
9});
10
11test("Test - Single Expression", function () {
12 testSingleCase(chrono.nl, "Het evenement gaat door (04/2016)", new Date(2012, 7, 10), (result) => {
13 expect(result.start).not.toBeNull();
14 expect(result.start.get("year")).toBe(2016);
15 expect(result.start.get("month")).toBe(4);
16 expect(result.start.get("day")).toBe(1);
17
18 expect(result.index).toBe(25);
19 expect(result.text).toBe("04/2016");
20
21 expect(result.start).toBeDate(new Date(2016, 4 - 1, 1, 12));
22 });
23
24 testSingleCase(chrono.nl, "Gepubliceerd: 06/2004", new Date(2012, 7, 10), (result) => {
25 expect(result.start).not.toBeNull();
26 expect(result.start.get("year")).toBe(2004);
27 expect(result.start.get("month")).toBe(6);
28 expect(result.start.get("day")).toBe(1);
29
30 expect(result.index).toBe(14);
31 expect(result.text).toBe("06/2004");
32
33 expect(result.start).toBeDate(new Date(2004, 6 - 1, 1, 12));
34 });
35
36 testSingleCase(chrono.nl, "8/10/2012", new Date(2012, 9, 8), (result) => {
37 expect(result.start).not.toBeNull();
38 expect(result.start.get("year")).toBe(2012);
39 expect(result.start.get("month")).toBe(10);
40 expect(result.start.get("day")).toBe(8);
41
42 expect(result.index).toBe(0);
43 expect(result.text).toBe("8/10/2012");
44
45 expect(result.start.isCertain("day")).toBe(true);
46 expect(result.start.isCertain("month")).toBe(true);
47 expect(result.start.isCertain("year")).toBe(true);
48
49 expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
50 });
51
52 testSingleCase(chrono.nl, ": 8/1/2012", new Date(2012, 0, 8), (result) => {
53 expect(result.start).not.toBeNull();
54 expect(result.start.get("year")).toBe(2012);
55 expect(result.start.get("month")).toBe(1);
56 expect(result.start.get("day")).toBe(8);
57
58 expect(result.index).toBe(2);
59 expect(result.text).toBe("8/1/2012");
60
61 expect(result.start).toBeDate(new Date(2012, 0, 8, 12));
62 });
63
64 testSingleCase(chrono.nl, "8/10", new Date(2012, 10 - 1, 8), (result) => {
65 expect(result.start).not.toBeNull();
66 expect(result.start.get("year")).toBe(2012);
67 expect(result.start.get("month")).toBe(10);
68 expect(result.start.get("day")).toBe(8);
69
70 expect(result.index).toBe(0);
71 expect(result.text).toBe("8/10");
72
73 expect(result.start.isCertain("day")).toBe(true);
74 expect(result.start.isCertain("month")).toBe(true);
75 expect(result.start.isCertain("year")).toBe(false);
76
77 expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
78 });
79
80 testSingleCase(chrono.nl, "De deadline is 8/10/2012", new Date(2012, 10 - 1, 8), (result) => {
81 expect(result.index).toBe(15);
82 expect(result.text).toBe("8/10/2012");
83
84 expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
85 });
86
87 testSingleCase(chrono.nl, "De deadline is dinsdag 11/3/2015", new Date(2015, 10, 3), (result) => {
88 expect(result.index).toBe(15);
89 expect(result.text).toBe("dinsdag 11/3/2015");
90
91 expect(result.start).toBeDate(new Date(2015, 2, 11, 12));
92 });
93
94 testSingleCase(chrono.nl, "28/2/2014", (result) => {
95 expect(result.text).toBe("28/2/2014");
96 });
97
98 testWithExpectedDate(chrono.nl, "30-12-16", new Date(2016, 12 - 1, 30, 12));
99
100 testSingleCase(chrono.nl, "vrijdag 30-12-16", (result) => {
101 expect(result.text).toBe("vrijdag 30-12-16");
102 expect(result).toBeDate(new Date(2016, 12 - 1, 30, 12));
103 });
104});
105
106test("Test - Single Expression Little-Endian", function () {
107 testSingleCase(chrono.nl, "8/10/2012", new Date(2012, 7, 10), (result) => {
108 expect(result.start).not.toBeNull();
109 expect(result.start.get("year")).toBe(2012);
110 expect(result.start.get("month")).toBe(10);
111 expect(result.start.get("day")).toBe(8);
112
113 expect(result.index).toBe(0);
114 expect(result.text).toBe("8/10/2012");
115
116 expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
117 });
118
119 testWithExpectedDate(chrono.nl, "30-12-16", new Date(2016, 12 - 1, 30, 12));
120
121 testSingleCase(chrono.nl, "vrijdag 30-12-16", (result) => {
122 expect(result.text).toBe("vrijdag 30-12-16");
123 expect(result).toBeDate(new Date(2016, 12 - 1, 30, 12));
124 });
125});
126
127test("Test - Single Expression Little-Endian with Month name", function () {
128 testSingleCase(chrono.nl, "8 oktober 2012", new Date(2012, 10 - 1, 8), (result) => {
129 expect(result.start).not.toBeNull();
130 expect(result.start.get("year")).toBe(2012);
131 expect(result.start.get("month")).toBe(10);
132 expect(result.start.get("day")).toBe(8);
133
134 expect(result.index).toBe(0);
135 expect(result.text).toBe("8 oktober 2012");
136
137 expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
138 });
139});
140
141test("Test - Range Expression", function () {
142 testSingleCase(chrono.nl, "10/8/2012 - 15/8/2012", new Date(2012, 7, 10), (result) => {
143 expect(result.index).toBe(0);
144 expect(result.text).toBe("10/8/2012 - 15/8/2012");
145
146 expect(result.start).not.toBeNull();
147 expect(result.start.get("year")).toBe(2012);
148 expect(result.start.get("month")).toBe(8);
149 expect(result.start.get("day")).toBe(10);
150
151 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
152
153 expect(result.end).not.toBeNull();
154 expect(result.end.get("year")).toBe(2012);
155 expect(result.end.get("month")).toBe(8);
156 expect(result.end.get("day")).toBe(15);
157
158 expect(result.end).toBeDate(new Date(2012, 8 - 1, 15, 12));
159 });
160});
161
162test("Test - Splitter variances patterns", function () {
163 const expectDate = new Date(2015, 5 - 1, 25, 12, 0);
164
165 testWithExpectedDate(chrono.nl, "2015-05-25", expectDate);
166 testWithExpectedDate(chrono.nl, "2015/05/25", expectDate);
167 testWithExpectedDate(chrono.nl, "2015.05.25", expectDate);
168 testWithExpectedDate(chrono.nl, "25-05-2015", expectDate);
169 testWithExpectedDate(chrono.nl, "25/05/2015", expectDate);
170 testWithExpectedDate(chrono.nl, "25.05.2015", expectDate);
171
172 // Also, guessing ambiguous date
173 testWithExpectedDate(chrono.nl, "25/05/2015", expectDate);
174});
175
176test("Test - Impossible Dates and Unexpected Results", function () {
177 testUnexpectedResult(chrono.nl, "8/32/2014", new Date(2012, 7, 10));
178
179 testUnexpectedResult(chrono.nl, "8/32", new Date(2012, 7, 10));
180
181 testUnexpectedResult(chrono.nl, "2/29/2014", new Date(2012, 7, 10));
182
183 testUnexpectedResult(chrono.nl, "2014/22/29", new Date(2012, 7, 10));
184
185 testUnexpectedResult(chrono.nl, "2014/13/22", new Date(2012, 7, 10));
186
187 testUnexpectedResult(chrono.nl, "80-32-89-89", new Date(2012, 7, 10));
188});
189
190test("Test - forward dates only option", function () {
191 testSingleCase(chrono, "31/5", new Date(1999, 6 - 1, 1), { forwardDate: true }, (result) => {
192 expect(result.start).not.toBeNull();
193 expect(result.start.get("year")).toBe(2000);
194 expect(result.start.get("month")).toBe(5);
195 expect(result.start.get("day")).toBe(31);
196
197 expect(result.index).toBe(0);
198 expect(result.text).toBe("31/5");
199
200 expect(result.start.isCertain("day")).toBe(true);
201 expect(result.start.isCertain("month")).toBe(true);
202 expect(result.start.isCertain("year")).toBe(false);
203
204 expect(result.start).toBeDate(new Date(2000, 5 - 1, 31, 12));
205 });
206});