UNPKG

6.65 kBPlain TextView Raw
1import * as chrono from "../../src/";
2import { testSingleCase } from "../test_util";
3
4test("Test - Single Expression", function () {
5 testSingleCase(chrono.pt, "Ficaremos às 6.13 AM", new Date(2012, 7, 10), (result) => {
6 expect(result.index).toBe(10);
7 expect(result.text).toBe("às 6.13 AM");
8
9 expect(result.start).not.toBeNull();
10 expect(result.start.get("hour")).toBe(6);
11 expect(result.start.get("minute")).toBe(13);
12
13 expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 13));
14 });
15});
16
17test("Test - Range Expression", function () {
18 testSingleCase(chrono.pt, "8:10 - 12.32", new Date(2012, 7, 10), (result) => {
19 expect(result.index).toBe(0);
20 expect(result.text).toBe("8:10 - 12.32");
21
22 expect(result.start).not.toBeNull();
23 expect(result.start.get("hour")).toBe(8);
24 expect(result.start.get("minute")).toBe(10);
25
26 expect(result.start.isCertain("day")).toBe(false);
27 expect(result.start.isCertain("month")).toBe(false);
28 expect(result.start.isCertain("year")).toBe(false);
29 expect(result.start.isCertain("hour")).toBe(true);
30 expect(result.start.isCertain("minute")).toBe(true);
31 expect(result.start.isCertain("second")).toBe(false);
32 expect(result.start.isCertain("millisecond")).toBe(false);
33
34 expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
35
36 expect(result.end).not.toBeNull();
37 expect(result.end.get("hour")).toBe(12);
38 expect(result.end.get("minute")).toBe(32);
39
40 expect(result.end.isCertain("day")).toBe(false);
41 expect(result.end.isCertain("month")).toBe(false);
42 expect(result.end.isCertain("year")).toBe(false);
43 expect(result.end.isCertain("hour")).toBe(true);
44 expect(result.end.isCertain("minute")).toBe(true);
45 expect(result.end.isCertain("second")).toBe(false);
46 expect(result.end.isCertain("millisecond")).toBe(false);
47
48 expect(result.end).toBeDate(new Date(2012, 7, 10, 12, 32));
49 });
50
51 testSingleCase(chrono.pt, " de 6:30pm a 11:00pm ", new Date(2012, 7, 10), (result) => {
52 expect(result.index).toBe(1);
53 expect(result.text).toBe("de 6:30pm a 11:00pm");
54
55 expect(result.start).not.toBeNull();
56 expect(result.start.get("hour")).toBe(18);
57 expect(result.start.get("minute")).toBe(30);
58 expect(result.start.get("meridiem")).toBe(1);
59
60 expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 30));
61
62 expect(result.end).not.toBeNull();
63 expect(result.end.get("hour")).toBe(23);
64 expect(result.end.get("minute")).toBe(0);
65 expect(result.end.get("meridiem")).toBe(1);
66
67 expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
68 });
69});
70
71test("Test - Date + Time Expression", function () {
72 testSingleCase(chrono.pt, "Algo passou em 10 de Agosto de 2012 10:12:59 pm", new Date(2012, 7, 10), (result) => {
73 expect(result.index).toBe(15);
74 expect(result.text).toBe("10 de Agosto de 2012 10:12:59 pm");
75
76 expect(result.start.get("year")).toBe(2012);
77 expect(result.start.get("month")).toBe(8);
78 expect(result.start.get("day")).toBe(10);
79 expect(result.start.get("hour")).toBe(22);
80 expect(result.start.get("minute")).toBe(12);
81 expect(result.start.get("second")).toBe(59);
82 expect(result.start.get("millisecond")).toBe(0);
83 expect(result.start.isCertain("millisecond")).toBe(false);
84
85 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 22, 12, 59));
86 });
87});
88
89test("Test - Time Expression's Meridiem imply", function () {
90 testSingleCase(chrono.pt, "de 1pm a 3", new Date(2012, 7, 10), (result) => {
91 expect(result.index).toBe(0);
92 expect(result.text).toBe("de 1pm a 3");
93
94 expect(result.start.get("year")).toBe(2012);
95 expect(result.start.get("month")).toBe(8);
96 expect(result.start.get("day")).toBe(10);
97 expect(result.start.get("hour")).toBe(13);
98 expect(result.start.get("minute")).toBe(0);
99 expect(result.start.get("second")).toBe(0);
100 expect(result.start.get("millisecond")).toBe(0);
101 expect(result.start.get("meridiem")).toBe(1);
102 expect(result.start.isCertain("meridiem")).toBe(true);
103
104 expect(result.end.get("year")).toBe(2012);
105 expect(result.end.get("month")).toBe(8);
106 expect(result.end.get("day")).toBe(10);
107 expect(result.end.get("hour")).toBe(15);
108 expect(result.end.get("minute")).toBe(0);
109 expect(result.end.get("second")).toBe(0);
110 expect(result.end.get("millisecond")).toBe(0);
111 expect(result.end.isCertain("meridiem")).toBe(true);
112 });
113});
114
115test("Test - Random date + time expression", function () {
116 testSingleCase(chrono.pt, "segunda 4/29/2013 630-930am", (result, text) => {
117 expect(result.text).toBe(text);
118 });
119
120 testSingleCase(chrono.pt, "terça 5/1/2013 1115am", (result, text) => {
121 expect(result.text).toBe(text);
122 });
123
124 testSingleCase(chrono.pt, "quarta 5/3/2013 1230pm", (result, text) => {
125 expect(result.text).toBe(text);
126 });
127
128 testSingleCase(chrono.pt, "domingo 5/6/2013 750am-910am", (result, text) => {
129 expect(result.text).toBe(text);
130 });
131
132 testSingleCase(chrono.pt, "segunda-feira 5/13/2013 630-930am", (result, text) => {
133 expect(result.text).toBe(text);
134 });
135
136 testSingleCase(chrono.pt, "quarta-feira 5/15/2013 1030am", (result, text) => {
137 expect(result.text).toBe(text);
138 });
139
140 testSingleCase(chrono.pt, "quinta 6/21/2013 2:30", (result, text) => {
141 expect(result.text).toBe(text);
142 });
143
144 testSingleCase(chrono.pt, "terça-feira 7/2/2013 1-230 pm", (result, text) => {
145 expect(result.text).toBe(text);
146 });
147
148 testSingleCase(chrono.pt, "Segunda-feira, 6/24/2013, 7:00pm - 8:30pm", (result, text) => {
149 expect(result.text).toBe(text);
150 });
151
152 testSingleCase(chrono.pt, "Quarta, 3 Julho de 2013 às 2pm", (result, text) => {
153 expect(result.text).toBe(text);
154 });
155
156 testSingleCase(chrono.pt, "6pm", (result, text) => {
157 expect(result.text).toBe(text);
158 });
159
160 testSingleCase(chrono.pt, "6 pm", (result, text) => {
161 expect(result.text).toBe(text);
162 });
163
164 testSingleCase(chrono.pt, "7-10pm", (result, text) => {
165 expect(result.text).toBe(text);
166 });
167
168 testSingleCase(chrono.pt, "11.1pm", (result, text) => {
169 expect(result.text).toBe(text);
170 });
171
172 testSingleCase(chrono.pt, "às 12", (result, text) => {
173 expect(result.text).toBe(text);
174 });
175});