1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase } from "../test_util";
|
3 |
|
4 | test("Test - Simple Weekday Expression", () => {
|
5 | testSingleCase(chrono.de, "Montag", new Date(2012, 7, 9), (result) => {
|
6 | expect(result.start).not.toBeNull();
|
7 | expect(result.start.get("year")).toBe(2012);
|
8 | expect(result.start.get("month")).toBe(8);
|
9 | expect(result.start.get("day")).toBe(6);
|
10 | expect(result.start.get("weekday")).toBe(1);
|
11 |
|
12 | expect(result.start.isCertain("day")).toBe(false);
|
13 | expect(result.start.isCertain("month")).toBe(false);
|
14 | expect(result.start.isCertain("year")).toBe(false);
|
15 | expect(result.start.isCertain("weekday")).toBe(true);
|
16 |
|
17 | expect(result.start).toBeDate(new Date(2012, 7, 6, 12));
|
18 | });
|
19 |
|
20 | testSingleCase(chrono.de, "am Donnerstag", new Date(2012, 7, 9), (result) => {
|
21 | expect(result.text).toBe("am Donnerstag");
|
22 |
|
23 | expect(result.start.get("year")).toBe(2012);
|
24 | expect(result.start.get("month")).toBe(8);
|
25 | expect(result.start.get("day")).toBe(9);
|
26 | expect(result.start.get("weekday")).toBe(4);
|
27 |
|
28 | expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
|
29 | });
|
30 |
|
31 | testSingleCase(chrono.de, "Sonntag", new Date(2012, 7, 9), (result) => {
|
32 | expect(result.text).toBe("Sonntag");
|
33 |
|
34 | expect(result.start.get("year")).toBe(2012);
|
35 | expect(result.start.get("month")).toBe(8);
|
36 | expect(result.start.get("day")).toBe(12);
|
37 | expect(result.start.get("weekday")).toBe(0);
|
38 |
|
39 | expect(result.start).toBeDate(new Date(2012, 7, 12, 12));
|
40 | });
|
41 |
|
42 | testSingleCase(chrono.de, "Die Deadline war letzten Freitag...", new Date(2012, 7, 9), (result) => {
|
43 | expect(result.index).toBe(17);
|
44 | expect(result.text).toBe("letzten Freitag");
|
45 |
|
46 | expect(result.start.get("year")).toBe(2012);
|
47 | expect(result.start.get("month")).toBe(8);
|
48 | expect(result.start.get("day")).toBe(3);
|
49 | expect(result.start.get("weekday")).toBe(5);
|
50 |
|
51 | expect(result.start).toBeDate(new Date(2012, 7, 3, 12));
|
52 | });
|
53 |
|
54 | testSingleCase(chrono.de, "Treffen wir uns am Freitag nächste Woche", new Date(2015, 3, 18), (result) => {
|
55 | expect(result.index).toBe(16);
|
56 | expect(result.text).toBe("am Freitag nächste Woche");
|
57 |
|
58 | expect(result.start.get("year")).toBe(2015);
|
59 | expect(result.start.get("month")).toBe(4);
|
60 | expect(result.start.get("day")).toBe(24);
|
61 | expect(result.start.get("weekday")).toBe(5);
|
62 |
|
63 | expect(result.start).toBeDate(new Date(2015, 3, 24, 12));
|
64 | });
|
65 |
|
66 | testSingleCase(
|
67 | chrono.de,
|
68 | "Ich habe vor, am Dienstag nächste Woche freizunehmen",
|
69 | new Date(2015, 3, 18),
|
70 | (result) => {
|
71 | expect(result.index).toBe(14);
|
72 | expect(result.text).toBe("am Dienstag nächste Woche");
|
73 |
|
74 | expect(result.start).not.toBeNull();
|
75 | expect(result.start.get("year")).toBe(2015);
|
76 | expect(result.start.get("month")).toBe(4);
|
77 | expect(result.start.get("day")).toBe(21);
|
78 | expect(result.start.get("weekday")).toBe(2);
|
79 |
|
80 | expect(result.start).toBeDate(new Date(2015, 3, 21, 12));
|
81 | }
|
82 | );
|
83 | });
|
84 |
|
85 | test("Test - Weekday with forward date option", () => {
|
86 | testSingleCase(
|
87 | chrono.de,
|
88 | "diesen Freitag bis diesen Montag",
|
89 | new Date(2016, 8 - 1, 4),
|
90 | { forwardDate: true },
|
91 | (result) => {
|
92 | expect(result.index).toBe(0);
|
93 | expect(result.text).toBe("diesen Freitag bis diesen Montag");
|
94 |
|
95 | expect(result.start).not.toBeNull();
|
96 | expect(result.start.get("year")).toBe(2016);
|
97 | expect(result.start.get("month")).toBe(8);
|
98 | expect(result.start.get("day")).toBe(5);
|
99 | expect(result.start.get("weekday")).toBe(5);
|
100 |
|
101 | expect(result.start.isCertain("day")).toBe(false);
|
102 | expect(result.start.isCertain("month")).toBe(false);
|
103 | expect(result.start.isCertain("year")).toBe(false);
|
104 | expect(result.start.isCertain("weekday")).toBe(true);
|
105 |
|
106 | expect(result.start).toBeDate(new Date(2016, 8 - 1, 5, 12));
|
107 |
|
108 | expect(result.end).not.toBeNull();
|
109 | expect(result.end.get("year")).toBe(2016);
|
110 | expect(result.end.get("month")).toBe(8);
|
111 | expect(result.end.get("day")).toBe(8);
|
112 | expect(result.end.get("weekday")).toBe(1);
|
113 |
|
114 | expect(result.end.isCertain("day")).toBe(false);
|
115 | expect(result.end.isCertain("month")).toBe(false);
|
116 | expect(result.end.isCertain("year")).toBe(false);
|
117 | expect(result.end.isCertain("weekday")).toBe(true);
|
118 |
|
119 | expect(result.end).toBeDate(new Date(2016, 8 - 1, 8, 12));
|
120 | }
|
121 | );
|
122 | });
|
123 |
|
124 | test("Test - Weekday Overlap", function () {
|
125 | testSingleCase(chrono.de, "Sonntag, den 7. Dezember 2014", new Date(2012, 7, 9), (result) => {
|
126 | expect(result.index).toBe(0);
|
127 | expect(result.text).toBe("Sonntag, den 7. Dezember 2014");
|
128 |
|
129 | expect(result.start).not.toBeNull();
|
130 | expect(result.start.get("year")).toBe(2014);
|
131 | expect(result.start.get("month")).toBe(12);
|
132 | expect(result.start.get("day")).toBe(7);
|
133 | expect(result.start.get("weekday")).toBe(0);
|
134 |
|
135 | expect(result.start.isCertain("day")).toBe(true);
|
136 | expect(result.start.isCertain("month")).toBe(true);
|
137 | expect(result.start.isCertain("year")).toBe(true);
|
138 | expect(result.start.isCertain("weekday")).toBe(true);
|
139 |
|
140 | expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
|
141 | });
|
142 |
|
143 | testSingleCase(chrono.de, "Sonntag 7.12.2014", new Date(2012, 7, 9), (result) => {
|
144 | expect(result.text).toBe("Sonntag 7.12.2014");
|
145 |
|
146 | expect(result.start.get("year")).toBe(2014);
|
147 | expect(result.start.get("month")).toBe(12);
|
148 | expect(result.start.get("day")).toBe(7);
|
149 | expect(result.start.get("weekday")).toBe(0);
|
150 |
|
151 | expect(result.start.isCertain("day")).toBe(true);
|
152 | expect(result.start.isCertain("month")).toBe(true);
|
153 | expect(result.start.isCertain("year")).toBe(true);
|
154 | expect(result.start.isCertain("weekday")).toBe(true);
|
155 |
|
156 | expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
|
157 | });
|
158 | });
|