UNPKG

6.76 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase, testUnexpectedResult } from "../test_util";
3
4test("Test - Single Expression", function () {
5 testSingleCase(chrono.pt, "O prazo é agora", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6 expect(result.index).toBe(10);
7 expect(result.text).toBe("agora");
8
9 expect(result.start).not.toBeNull();
10 expect(result.start.get("year")).toBe(2012);
11 expect(result.start.get("month")).toBe(8);
12 expect(result.start.get("day")).toBe(10);
13 expect(result.start.get("hour")).toBe(8);
14 expect(result.start.get("minute")).toBe(9);
15 expect(result.start.get("second")).toBe(10);
16 expect(result.start.get("millisecond")).toBe(11);
17
18 expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
19 });
20
21 testSingleCase(chrono.pt, "O prazo é hoje", new Date(2012, 7, 10, 12), (result) => {
22 expect(result.index).toBe(10);
23 expect(result.text).toBe("hoje");
24
25 expect(result.start).not.toBeNull();
26 expect(result.start.get("year")).toBe(2012);
27 expect(result.start.get("month")).toBe(8);
28 expect(result.start.get("day")).toBe(10);
29
30 expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
31 });
32
33 testSingleCase(chrono.pt, "O prazo é Amanhã", new Date(2012, 7, 10, 12), (result) => {
34 expect(result.index).toBe(10);
35 expect(result.text).toBe("Amanhã");
36
37 expect(result.start).not.toBeNull();
38 expect(result.start.get("year")).toBe(2012);
39 expect(result.start.get("month")).toBe(8);
40 expect(result.start.get("day")).toBe(11);
41
42 expect(result.start).toBeDate(new Date(2012, 7, 11, 12));
43 });
44
45 testSingleCase(chrono.pt, "O prazo é Amanhã", new Date(2012, 7, 10, 1), (result) => {
46 expect(result.start).toBeDate(new Date(2012, 7, 11, 1));
47 });
48
49 testSingleCase(chrono.pt, "O prazo foi ontem", new Date(2012, 7, 10, 12), (result) => {
50 expect(result.index).toBe(12);
51 expect(result.text).toBe("ontem");
52
53 expect(result.start).not.toBeNull();
54 expect(result.start.get("year")).toBe(2012);
55 expect(result.start.get("month")).toBe(8);
56 expect(result.start.get("day")).toBe(9);
57
58 expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
59 });
60
61 testSingleCase(chrono.pt, "O prazo foi ontem à noite ", new Date(2012, 7, 10, 12), (result) => {
62 expect(result.index).toBe(12);
63 expect(result.text).toBe("ontem à noite");
64
65 expect(result.start).not.toBeNull();
66 expect(result.start.get("year")).toBe(2012);
67 expect(result.start.get("month")).toBe(8);
68 expect(result.start.get("day")).toBe(9);
69 expect(result.start.get("hour")).toBe(22);
70
71 expect(result.start).toBeDate(new Date(2012, 7, 9, 22));
72 });
73
74 testSingleCase(chrono.pt, "O prazo foi esta manhã ", new Date(2012, 7, 10, 12), (result) => {
75 expect(result.index).toBe(12);
76 expect(result.text).toBe("esta manhã");
77
78 expect(result.start).not.toBeNull();
79 expect(result.start.get("year")).toBe(2012);
80 expect(result.start.get("month")).toBe(8);
81 expect(result.start.get("day")).toBe(10);
82 expect(result.start.get("hour")).toBe(6);
83
84 expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
85 });
86
87 testSingleCase(chrono.pt, "O prazo foi esta tarde ", new Date(2012, 7, 10, 12), (result) => {
88 expect(result.index).toBe(12);
89 expect(result.text).toBe("esta tarde");
90
91 expect(result.start).not.toBeNull();
92 expect(result.start.get("year")).toBe(2012);
93 expect(result.start.get("month")).toBe(8);
94 expect(result.start.get("day")).toBe(10);
95 expect(result.start.get("hour")).toBe(15);
96
97 expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
98 });
99});
100
101test("Test - Combined Expression", function () {
102 testSingleCase(chrono.pt, "O prazo é hoje às 5PM", new Date(2012, 7, 10, 12), (result) => {
103 expect(result.index).toBe(10);
104 expect(result.text).toBe("hoje às 5PM");
105
106 expect(result.start).not.toBeNull();
107 expect(result.start.get("year")).toBe(2012);
108 expect(result.start.get("month")).toBe(8);
109 expect(result.start.get("day")).toBe(10);
110 expect(result.start.get("hour")).toBe(17);
111
112 expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
113 });
114});
115
116test("Test - Random text", function () {
117 testSingleCase(chrono.pt, "esta noite", new Date(2012, 1 - 1, 1, 12), (result, text) => {
118 expect(result.text).toBe(text);
119 expect(result.start.get("year")).toBe(2012);
120 expect(result.start.get("month")).toBe(1);
121 expect(result.start.get("day")).toBe(1);
122 expect(result.start.get("hour")).toBe(22);
123 expect(result.start.get("meridiem")).toBe(1);
124 });
125
126 testSingleCase(chrono.pt, "esta noite 8pm", new Date(2012, 1 - 1, 1, 12), (result, text) => {
127 expect(result.text).toBe(text);
128 expect(result.start.get("hour")).toBe(20);
129 expect(result.start.get("year")).toBe(2012);
130 expect(result.start.get("month")).toBe(1);
131 expect(result.start.get("day")).toBe(1);
132 expect(result.start.get("meridiem")).toBe(1);
133 });
134
135 testSingleCase(chrono.pt, "esta noite às 8", new Date(2012, 1 - 1, 1, 12), (result, text) => {
136 expect(result.text).toBe(text);
137 expect(result.start.get("hour")).toBe(20);
138 expect(result.start.get("year")).toBe(2012);
139 expect(result.start.get("month")).toBe(1);
140 expect(result.start.get("day")).toBe(1);
141 expect(result.start.get("meridiem")).toBe(1);
142 });
143
144 testSingleCase(chrono.pt, "quinta", (result, text) => {
145 expect(result.text).toBe(text);
146 expect(result.start.get("weekday")).toBe(4);
147 });
148
149 testSingleCase(chrono.pt, "sexta", (result, text) => {
150 expect(result.text).toBe(text);
151 expect(result.start.get("weekday")).toBe(5);
152 });
153
154 testSingleCase(chrono.pt, "ao meio-dia", new Date(2020, 8, 1, 11), (result) => {
155 expect(result.start.get("hour")).toBe(12);
156 expect(result.start).toBeDate(new Date(2020, 8, 1, 12));
157 });
158
159 testSingleCase(chrono.pt, "a meia-noite", new Date(2020, 8, 1, 11), (result) => {
160 expect(result.start.get("hour")).toBe(0);
161 expect(result.start).toBeDate(new Date(2020, 8, 2));
162 });
163});
164
165test("Test - Random negative text", function () {
166 testUnexpectedResult(chrono.pt, "naohoje");
167
168 testUnexpectedResult(chrono.pt, "hyamanhã");
169
170 testUnexpectedResult(chrono.pt, "xontem");
171
172 testUnexpectedResult(chrono.pt, "porhora");
173
174 testUnexpectedResult(chrono.pt, "agoraxsd");
175});