UNPKG

6.31 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase, testUnexpectedResult } from "../test_util";
3
4test("Test - Single expression", () => {
5 testSingleCase(chrono.uk, "10.08.2012", new Date(2012, 7, 10), (result) => {
6 expect(result.index).toBe(0);
7 expect(result.text).toBe("10.08.2012");
8 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
9 });
10
11 testSingleCase(chrono.uk, "10 серпня 2012", new Date(2012, 7, 10), (result) => {
12 expect(result.index).toBe(0);
13 expect(result.text).toBe("10 серпня 2012");
14 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
15 });
16
17 testSingleCase(chrono.uk, "3 лют 82", new Date(2012, 7, 10), (result) => {
18 expect(result.index).toBe(0);
19 expect(result.text).toBe("3 лют 82");
20 expect(result.start).toBeDate(new Date(1982, 2 - 1, 3, 12));
21 });
22
23 testSingleCase(chrono.uk, "Дедлайн 10 серпня", new Date(2012, 7, 10), (result) => {
24 expect(result.index).toBe(8);
25 expect(result.text).toBe("10 серпня");
26 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
27 });
28
29 testSingleCase(chrono.uk, "Дедлайн Четвер, 10 січня", new Date(2012, 7, 10), (result) => {
30 expect(result.index).toBe(8);
31 expect(result.text).toBe("Четвер, 10 січня");
32 expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
33 });
34});
35
36test("Test - Single expression with separators", () => {
37 testSingleCase(chrono.uk, "10-серпня 2012", new Date(2012, 7, 8), (result, text) => {
38 expect(result.text).toBe(text);
39 expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
40 });
41
42 testSingleCase(chrono.uk, "10-серпня-2012", new Date(2012, 7, 8), (result, text) => {
43 expect(result.text).toBe(text);
44 expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
45 });
46
47 testSingleCase(chrono.uk, "10/серпня 2012", new Date(2012, 7, 8), (result, text) => {
48 expect(result.text).toBe(text);
49 expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
50 });
51
52 testSingleCase(chrono.uk, "10/серпня/2012", new Date(2012, 7, 8), (result, text) => {
53 expect(result.text).toBe(text);
54 expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
55 });
56});
57
58test("Test - Range expression", () => {
59 testSingleCase(chrono.uk, "10 - 22 серпня 2012", new Date(2012, 7, 10), (result) => {
60 expect(result.index).toBe(0);
61 expect(result.text).toBe("10 - 22 серпня 2012");
62 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
63 expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
64 });
65
66 testSingleCase(chrono.uk, "із 10 по 22 серпня 2012", new Date(2012, 7, 10), (result) => {
67 expect(result.index).toBe(0);
68 expect(result.text).toBe("із 10 по 22 серпня 2012");
69
70 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
71 expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
72 });
73
74 testSingleCase(chrono.uk, "10 серпня - 12 вересня", new Date(2012, 7, 10), (result) => {
75 expect(result.index).toBe(0);
76 expect(result.text).toBe("10 серпня - 12 вересня");
77
78 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
79 expect(result.end).toBeDate(new Date(2012, 9 - 1, 12, 12));
80 });
81
82 testSingleCase(chrono.uk, "10 серпня - 12 вересня 2013", new Date(2012, 7, 10), (result) => {
83 expect(result.index).toBe(0);
84 expect(result.text).toBe("10 серпня - 12 вересня 2013");
85
86 expect(result.start).toBeDate(new Date(2013, 8 - 1, 10, 12));
87 expect(result.end).toBeDate(new Date(2013, 9 - 1, 12, 12));
88 });
89});
90
91test("Test - Combined expression", () => {
92 testSingleCase(chrono.uk, "5 травня 12:00", new Date(2012, 7, 10), (result) => {
93 expect(result.index).toBe(0);
94 expect(result.text).toBe("5 травня 12:00");
95 expect(result.start).toBeDate(new Date(2012, 5 - 1, 5, 12, 0));
96 });
97});
98
99test("Test - Ordinal Words", () => {
100 testSingleCase(chrono.uk, "п'яте травня", new Date(2012, 7, 10), (result) => {
101 expect(result.index).toBe(0);
102 expect(result.text).toBe("п'яте травня");
103 expect(result.start).toBeDate(new Date(2012, 5 - 1, 5, 12, 0));
104 });
105});
106
107test("Test - Ordinal Words", () => {
108 testSingleCase(chrono.uk, "двадцять п'яте травня", new Date(2012, 1, 10), (result) => {
109 expect(result.index).toBe(0);
110 expect(result.text).toBe("двадцять п'яте травня");
111 expect(result.start).toBeDate(new Date(2012, 5 - 1, 25, 12, 0));
112 });
113});
114
115test("Test - little endian date followed by time", () => {
116 testSingleCase(chrono.uk, "24го жовтня, 9:00", new Date(2017, 7 - 1, 7, 15), (result) => {
117 expect(result.index).toBe(0);
118 expect(result.text).toBe("24го жовтня, 9:00");
119 expect(result.start).toBeDate(new Date(2017, 10 - 1, 24, 9));
120 });
121});
122
123test("Test - year 90's parsing", () => {
124 testSingleCase(chrono.uk, "03 сер 96", new Date(2012, 7, 10), (result) => {
125 expect(result.index).toBe(0);
126 expect(result.text).toBe("03 сер 96");
127 expect(result.start).toBeDate(new Date(1996, 8 - 1, 3, 12));
128 });
129});
130
131test("Test - Forward Option", () => {
132 testSingleCase(chrono.uk.casual, "22-23 лют в 7", new Date(2016, 3 - 1, 15), { forwardDate: true }, (result) => {
133 expect(result.index).toBe(0);
134 expect(result.text).toBe("22-23 лют в 7");
135 expect(result.start).toBeDate(new Date(2017, 2 - 1, 22, 7));
136 expect(result.end).toBeDate(new Date(2017, 2 - 1, 23, 7));
137 });
138});
139
140test("Test - Impossible Dates (Strict Mode)", function () {
141 testUnexpectedResult(chrono.uk.strict, "32 серпня 2014", new Date(2012, 7, 10));
142
143 testUnexpectedResult(chrono.uk.strict, "29 лютого 2014", new Date(2012, 7, 10));
144
145 testUnexpectedResult(chrono.uk.strict, "32 серпня", new Date(2012, 7, 10));
146
147 testUnexpectedResult(chrono.uk.strict, "29 лютого", new Date(2013, 7, 10));
148});