UNPKG

7.62 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase, testUnexpectedResult } from "../test_util";
3
4test("Test - Single Expression", () => {
5 testSingleCase(chrono.ru.casual, "Дедлайн сегодня", new Date(2012, 7, 10, 17, 10), (result) => {
6 expect(result.index).toBe(8);
7 expect(result.text).toBe("сегодня");
8 expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 10));
9 });
10
11 testSingleCase(chrono.ru.casual, "Дедлайн завтра", new Date(2012, 7, 10, 17, 10), (result) => {
12 expect(result.index).toBe(8);
13 expect(result.text).toBe("завтра");
14 expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
15 });
16
17 testSingleCase(chrono.ru.casual, "Дедлайн послезавтра", new Date(2012, 7, 10, 17, 10), (result) => {
18 expect(result.index).toBe(8);
19 expect(result.text).toBe("послезавтра");
20 expect(result.start).toBeDate(new Date(2012, 7, 12, 17, 10));
21 });
22
23 testSingleCase(chrono.ru.casual, "Дедлайн послепослезавтра", new Date(2012, 7, 10, 17, 10), (result) => {
24 expect(result.index).toBe(8);
25 expect(result.text).toBe("послепослезавтра");
26 expect(result.start).toBeDate(new Date(2012, 7, 13, 17, 10));
27 });
28
29 testSingleCase(chrono.ru.casual, "Дедлайн вчера", new Date(2012, 7, 10, 17, 10), (result) => {
30 expect(result.index).toBe(8);
31 expect(result.text).toBe("вчера");
32 expect(result.start).toBeDate(new Date(2012, 7, 9, 17, 10));
33 });
34
35 testSingleCase(chrono.ru.casual, "Дедлайн позавчера", new Date(2012, 7, 10, 17, 10), (result) => {
36 expect(result.index).toBe(8);
37 expect(result.text).toBe("позавчера");
38 expect(result.start).toBeDate(new Date(2012, 7, 8, 17, 10));
39 });
40
41 testSingleCase(chrono.ru.casual, "Дедлайн позапозавчера", new Date(2012, 7, 10, 17, 10), (result) => {
42 expect(result.index).toBe(8);
43 expect(result.text).toBe("позапозавчера");
44 expect(result.start).toBeDate(new Date(2012, 7, 7, 17, 10));
45 });
46
47 testSingleCase(chrono.ru.casual, "Дедлайн сейчас", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
48 expect(result.index).toBe(8);
49 expect(result.text).toBe("сейчас");
50 expect(result.start).toBeDate(result.refDate);
51 expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
52 });
53
54 testSingleCase(chrono.ru.casual, "Дедлайн утром", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
55 expect(result.index).toBe(8);
56 expect(result.text).toBe("утром");
57 expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
58 });
59
60 testSingleCase(chrono.ru.casual, "Дедлайн этим утром", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
61 expect(result.index).toBe(8);
62 expect(result.text).toBe("этим утром");
63 expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
64 });
65
66 testSingleCase(chrono.ru.casual, "Дедлайн в полдень", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
67 expect(result.index).toBe(8);
68 expect(result.text).toBe("в полдень");
69 expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 0, 0, 0));
70 });
71
72 testSingleCase(chrono.ru.casual, "Дедлайн прошлым вечером", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
73 expect(result.index).toBe(8);
74 expect(result.text).toBe("прошлым вечером");
75 expect(result.start).toBeDate(new Date(2012, 7, 9, 20, 0, 0, 0));
76 });
77
78 testSingleCase(chrono.ru.casual, "Дедлайн вечером", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
79 expect(result.index).toBe(8);
80 expect(result.text).toBe("вечером");
81 expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 0, 0, 0));
82 });
83
84 testSingleCase(chrono.ru.casual, "Дедлайн прошлой ночью", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
85 expect(result.index).toBe(8);
86 expect(result.text).toBe("прошлой ночью");
87 expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
88 });
89
90 testSingleCase(chrono.ru.casual, "Дедлайн прошлой ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
91 expect(result.index).toBe(8);
92 expect(result.text).toBe("прошлой ночью");
93 expect(result.start).toBeDate(new Date(2012, 7, 9, 0, 0, 0, 0));
94 });
95
96 testSingleCase(chrono.ru.casual, "Дедлайн сегодня ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
97 expect(result.index).toBe(8);
98 expect(result.text).toBe("сегодня ночью");
99 expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
100 });
101
102 testSingleCase(chrono.ru.casual, "Дедлайн этой ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
103 expect(result.index).toBe(8);
104 expect(result.text).toBe("этой ночью");
105 expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
106 });
107
108 testSingleCase(chrono.ru.casual, "Дедлайн ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
109 expect(result.index).toBe(8);
110 expect(result.text).toBe("ночью");
111 expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
112 });
113
114 testSingleCase(chrono.ru.casual, "Дедлайн в полночь", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
115 expect(result.index).toBe(8);
116 expect(result.text).toBe("в полночь");
117 expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
118 });
119});
120
121test("Test - Combined Expression", () => {
122 testSingleCase(chrono.ru.casual, "Дедлайн вчера вечером", new Date(2012, 7, 10, 12), (result) => {
123 expect(result.index).toBe(8);
124 expect(result.text).toBe("вчера вечером");
125 expect(result.start).toBeDate(new Date(2012, 7, 9, 20));
126 });
127
128 testSingleCase(chrono.ru.casual, "Дедлайн завтра утром", new Date(2012, 8, 10, 14), (result) => {
129 expect(result.index).toBe(8);
130 expect(result.text).toBe("завтра утром");
131 expect(result.start).toBeDate(new Date(2012, 8, 11, 6));
132 });
133});
134
135test("Test - Casual date range", () => {
136 testSingleCase(chrono.ru.casual, "Событие с сегодня и до послезавтра", new Date(2012, 7, 4, 12), (result) => {
137 expect(result.index).toBe(8);
138 expect(result.text).toBe("с сегодня и до послезавтра");
139 expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
140 expect(result.end).toBeDate(new Date(2012, 7, 6, 12));
141 });
142
143 testSingleCase(chrono.ru.casual, "Событие сегодня-завтра", new Date(2012, 7, 10, 12), (result) => {
144 expect(result.index).toBe(8);
145 expect(result.text).toBe("сегодня-завтра");
146 expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
147 expect(result.end).toBeDate(new Date(2012, 7, 11, 12));
148 });
149});
150
151test("Test - Random negative text", () => {
152 testUnexpectedResult(chrono.ru, "несегодня");
153
154 testUnexpectedResult(chrono.ru, "зявтра");
155
156 testUnexpectedResult(chrono.ru, "вчеера");
157
158 testUnexpectedResult(chrono.ru, "январ");
159});