UNPKG

6.26 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase } from "../test_util";
3
4test("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
85test("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
124test("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});