1 | import * as chrono from "../../src";
|
2 | import { testSingleCase, testUnexpectedResult, testWithExpectedDate } from "../test_util";
|
3 |
|
4 | test("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 |
|
11 | test("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 |
|
106 | test("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 |
|
127 | test("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 |
|
141 | test("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 |
|
162 | test("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 |
|
173 | testWithExpectedDate(chrono.nl, "25/05/2015", expectDate);
|
174 | });
|
175 |
|
176 | test("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 |
|
190 | test("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 | });
|