1 | import * as chrono from "../src/";
|
2 | import { testSingleCase } from "./test_util";
|
3 |
|
4 | test("Test - Timezone difference on reference example", function () {
|
5 | testSingleCase(
|
6 | chrono,
|
7 | "Friday at 4pm",
|
8 | {
|
9 | instant: new Date("Wed Jun 09 2021 07:00:00 GMT-0500 (CDT)"),
|
10 | timezone: "CDT",
|
11 | },
|
12 | (result) => {
|
13 | expect(result).toBeDate(new Date("Fri Jun 11 2021 16:00:00 GMT-0500 (CDT)"));
|
14 | expect(result).toBeDate(new Date("Fri Jun 12 2021 06:00:00 GMT+0900 (JST)"));
|
15 | }
|
16 | );
|
17 | });
|
18 |
|
19 | test("Test - Timezone difference on reference date", function () {
|
20 |
|
21 |
|
22 | const refInstant = new Date("Sun Jun 06 2021 19:00:00 GMT+0900 (JST)");
|
23 |
|
24 | testSingleCase(chrono, "At 4pm tomorrow", { instant: refInstant, timezone: "BST" }, (result) => {
|
25 | const expectedInstant = new Date("Mon Jun 07 2021 16:00:00 GMT+0100 (BST)");
|
26 | expect(result).toBeDate(expectedInstant);
|
27 | });
|
28 |
|
29 | testSingleCase(chrono, "At 4pm tomorrow", { instant: refInstant, timezone: "JST" }, (result) => {
|
30 | const expectedInstant = new Date("Mon Jun 07 2021 16:00:00 GMT+0900 (JST)");
|
31 | expect(result).toBeDate(expectedInstant);
|
32 | });
|
33 | });
|
34 |
|
35 | test("Test - Timezone difference on written date", function () {
|
36 |
|
37 |
|
38 | const refInstant = new Date("Sun Jun 06 2021 19:00:00 GMT+0900 (JST)");
|
39 |
|
40 | testSingleCase(chrono, "Sun Jun 06 2021 19:00:00", { timezone: "JST" }, (result) => {
|
41 | expect(result).toBeDate(refInstant);
|
42 | });
|
43 |
|
44 | testSingleCase(chrono, "Sun Jun 06 2021 11:00:00", { timezone: "BST" }, (result) => {
|
45 | expect(result).toBeDate(refInstant);
|
46 | });
|
47 |
|
48 | testSingleCase(chrono, "Sun Jun 06 2021 11:00:00", { timezone: 60 }, (result) => {
|
49 | expect(result).toBeDate(refInstant);
|
50 | });
|
51 | });
|
52 |
|
53 | test("Test - Precise [now] mentioned", function () {
|
54 | const refDate = new Date("Sat Mar 13 2021 14:22:14 GMT+0900 (Japan Standard Time)");
|
55 |
|
56 | testSingleCase(chrono, "now", refDate, (result) => {
|
57 | expect(result).toBeDate(refDate);
|
58 | });
|
59 |
|
60 | testSingleCase(chrono, "now", { instant: refDate }, (result) => {
|
61 | expect(result).toBeDate(refDate);
|
62 | });
|
63 |
|
64 | testSingleCase(chrono, "now", { instant: refDate, timezone: 540 }, (result) => {
|
65 | expect(result).toBeDate(refDate);
|
66 | });
|
67 |
|
68 | testSingleCase(chrono, "now", { instant: refDate, timezone: "JST" }, (result) => {
|
69 | expect(result).toBeDate(refDate);
|
70 | });
|
71 |
|
72 | testSingleCase(chrono, "now", { instant: refDate, timezone: -300 }, (result) => {
|
73 | expect(result).toBeDate(refDate);
|
74 | });
|
75 | });
|
76 |
|
77 | test("Test - Precise date/time mentioned", function () {
|
78 | const text = "Sat Mar 13 2021 14:22:14 GMT+0900";
|
79 | const refDate = new Date();
|
80 |
|
81 | testSingleCase(chrono, text, refDate, (result, text) => {
|
82 | expect(result).toBeDate(new Date(text));
|
83 | });
|
84 |
|
85 | testSingleCase(chrono, text, { instant: refDate }, (result) => {
|
86 | expect(result).toBeDate(new Date(text));
|
87 | });
|
88 |
|
89 | testSingleCase(chrono, text, { instant: refDate, timezone: 540 }, (result) => {
|
90 | expect(result).toBeDate(new Date(text));
|
91 | });
|
92 |
|
93 | testSingleCase(chrono, text, { instant: refDate, timezone: "JST" }, (result) => {
|
94 | expect(result).toBeDate(new Date(text));
|
95 | });
|
96 |
|
97 | testSingleCase(chrono, text, { instant: refDate, timezone: -300 }, (result) => {
|
98 | expect(result).toBeDate(new Date(text));
|
99 | });
|
100 | });
|