UNPKG

8.16 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase } from "../test_util";
3
4test("Test - Positive time units", () => {
5 testSingleCase(chrono.ru, "следующие 2 недели", new Date(2016, 10 - 1, 1, 12), (result, text) => {
6 expect(result.index).toBe(0);
7 expect(result.text).toBe(text);
8 expect(result.start.get("year")).toBe(2016);
9 expect(result.start.get("month")).toBe(10);
10 expect(result.start.get("day")).toBe(15);
11 expect(result.start.get("hour")).toBe(12);
12 });
13
14 testSingleCase(chrono.ru, "следующие 2 дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
15 expect(result.index).toBe(0);
16 expect(result.text).toBe(text);
17 expect(result.start.get("year")).toBe(2016);
18 expect(result.start.get("month")).toBe(10);
19 expect(result.start.get("day")).toBe(3);
20 expect(result.start.get("hour")).toBe(12);
21 });
22
23 testSingleCase(chrono.ru, "следующие два года", new Date(2016, 10 - 1, 1, 12), (result, text) => {
24 expect(result.index).toBe(0);
25 expect(result.text).toBe(text);
26 expect(result.start.get("year")).toBe(2018);
27 expect(result.start.get("month")).toBe(10);
28 expect(result.start.get("day")).toBe(1);
29 expect(result.start.get("hour")).toBe(12);
30 });
31
32 testSingleCase(chrono.ru, "следующие 2 недели 3 дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
33 expect(result.index).toBe(0);
34 expect(result.text).toBe(text);
35 expect(result.start.get("year")).toBe(2016);
36 expect(result.start.get("month")).toBe(10);
37 expect(result.start.get("day")).toBe(18);
38 expect(result.start.get("hour")).toBe(12);
39 });
40
41 testSingleCase(chrono.ru, "через пару минут", new Date(2016, 10 - 1, 1, 12), (result, text) => {
42 expect(result.index).toBe(0);
43 expect(result.text).toBe(text);
44 expect(result.start.get("year")).toBe(2016);
45 expect(result.start.get("month")).toBe(10);
46 expect(result.start.get("day")).toBe(1);
47 expect(result.start.get("hour")).toBe(12);
48 expect(result.start.get("minute")).toBe(2);
49 });
50
51 testSingleCase(chrono.ru, "через полчаса", new Date(2016, 10 - 1, 1, 12), (result, text) => {
52 expect(result.index).toBe(0);
53 expect(result.text).toBe(text);
54 expect(result.start.get("year")).toBe(2016);
55 expect(result.start.get("month")).toBe(10);
56 expect(result.start.get("day")).toBe(1);
57 expect(result.start.get("hour")).toBe(12);
58 expect(result.start.get("minute")).toBe(30);
59 });
60
61 testSingleCase(chrono.ru, "через 2 часа", new Date(2016, 10 - 1, 1, 12), (result, text) => {
62 expect(result.index).toBe(0);
63 expect(result.text).toBe(text);
64 expect(result.start.get("year")).toBe(2016);
65 expect(result.start.get("month")).toBe(10);
66 expect(result.start.get("day")).toBe(1);
67 expect(result.start.get("hour")).toBe(14);
68 });
69
70 testSingleCase(chrono.ru, "спустя 2 часа", new Date(2016, 10 - 1, 1, 12), (result, text) => {
71 expect(result.index).toBe(0);
72 expect(result.text).toBe(text);
73 expect(result.start.get("year")).toBe(2016);
74 expect(result.start.get("month")).toBe(10);
75 expect(result.start.get("day")).toBe(1);
76 expect(result.start.get("hour")).toBe(14);
77 });
78
79 testSingleCase(chrono.ru, "через три месяца", new Date(2016, 10 - 1, 1, 12), (result, text) => {
80 expect(result.index).toBe(0);
81 expect(result.text).toBe(text);
82 expect(result.start.get("year")).toBe(2017);
83 expect(result.start.get("month")).toBe(1);
84 expect(result.start.get("day")).toBe(1);
85 expect(result.start.get("hour")).toBe(12);
86 });
87
88 testSingleCase(chrono.ru, "через неделю", new Date(2016, 10 - 1, 1, 12), (result, text) => {
89 expect(result.index).toBe(0);
90 expect(result.text).toBe(text);
91 expect(result.start.get("year")).toBe(2016);
92 expect(result.start.get("month")).toBe(10);
93 expect(result.start.get("day")).toBe(8);
94 expect(result.start.get("hour")).toBe(12);
95 });
96
97 testSingleCase(chrono.ru, "через месяц", new Date(2016, 10 - 1, 1, 12), (result, text) => {
98 expect(result.index).toBe(0);
99 expect(result.text).toBe(text);
100 expect(result.start.get("year")).toBe(2016);
101 expect(result.start.get("month")).toBe(11);
102 expect(result.start.get("day")).toBe(1);
103 expect(result.start.get("hour")).toBe(12);
104 });
105
106 testSingleCase(
107 chrono.ru,
108 "через год",
109 { instant: new Date("2020-11-22T03:11:02.006"), timezone: "GMT" },
110 (result, text) => {
111 expect(result.index).toBe(0);
112 expect(result.text).toBe(text);
113 expect(result.start).toBeDate(new Date("2021-11-22T03:11:02.006"));
114 }
115 );
116 testSingleCase(
117 chrono.ru,
118 "через год",
119 { instant: new Date("2020-11-22T12:11:32.006"), timezone: "GMT" },
120 (result, text) => {
121 expect(result.index).toBe(0);
122 expect(result.text).toBe(text);
123 expect(result.start).toBeDate(new Date("2021-11-22T12:11:32.006"));
124 }
125 );
126});
127
128test("Test - Negative time units", () => {
129 testSingleCase(chrono.ru, "прошлые 2 недели", new Date(2016, 10 - 1, 1, 12), (result, text) => {
130 expect(result.index).toBe(0);
131 expect(result.text).toBe(text);
132 expect(result.start.get("year")).toBe(2016);
133 expect(result.start.get("month")).toBe(9);
134 expect(result.start.get("day")).toBe(17);
135 expect(result.start.get("hour")).toBe(12);
136 });
137
138 testSingleCase(chrono.ru, "прошлые два дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
139 expect(result.index).toBe(0);
140 expect(result.text).toBe(text);
141 expect(result.start.get("year")).toBe(2016);
142 expect(result.start.get("month")).toBe(9);
143 expect(result.start.get("day")).toBe(29);
144 expect(result.start.get("hour")).toBe(12);
145 });
146});
147
148test("Test - Plus '+' sign", () => {
149 testSingleCase(chrono.ru.casual, "+15 минут", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
150 expect(result.index).toBe(0);
151 expect(result.text).toBe(text);
152 expect(result.start.get("year")).toBe(2012);
153 expect(result.start.get("month")).toBe(7);
154 expect(result.start.get("day")).toBe(10);
155 expect(result.start.get("hour")).toBe(12);
156 expect(result.start.get("minute")).toBe(29);
157 });
158
159 testSingleCase(chrono.ru.casual, "+15мин", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
160 expect(result.index).toBe(0);
161 expect(result.text).toBe(text);
162 expect(result.start.get("year")).toBe(2012);
163 expect(result.start.get("month")).toBe(7);
164 expect(result.start.get("day")).toBe(10);
165 expect(result.start.get("hour")).toBe(12);
166 expect(result.start.get("minute")).toBe(29);
167 });
168
169 testSingleCase(chrono.ru.casual, "+1 день 2 часа", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
170 expect(result.index).toBe(0);
171 expect(result.text).toBe(text);
172 expect(result.start.get("year")).toBe(2012);
173 expect(result.start.get("month")).toBe(7);
174 expect(result.start.get("day")).toBe(11);
175 expect(result.start.get("hour")).toBe(14);
176 expect(result.start.get("minute")).toBe(14);
177 });
178});
179
180test("Test - Minus '-' sign", () => {
181 testSingleCase(chrono.ru.casual, "-3 года", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
182 expect(result.index).toBe(0);
183 expect(result.text).toBe(text);
184 expect(result.start.get("year")).toBe(2012);
185 expect(result.start.get("month")).toBe(7);
186 expect(result.start.get("day")).toBe(10);
187 expect(result.start.get("hour")).toBe(12);
188 expect(result.start.get("minute")).toBe(14);
189 });
190});