1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 |
|
4 | test("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 |
|
101 | test("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 |
|
116 | test("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 |
|
165 | test("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 | });
|