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 default timezone", function () {
|
20 | const INPUT = "Friday at 4pm";
|
21 | const REF_INSTANT = new Date(2021, 6 - 1, 9, 7, 0, 0);
|
22 | const EXPECTED_INSTANT = new Date(2021, 6 - 1, 11, 16, 0, 0);
|
23 |
|
24 | testSingleCase(chrono, INPUT, REF_INSTANT, (result) => {
|
25 | expect(result).toBeDate(EXPECTED_INSTANT);
|
26 | });
|
27 |
|
28 | testSingleCase(chrono, INPUT, { instant: REF_INSTANT }, (result) => {
|
29 | expect(result).toBeDate(EXPECTED_INSTANT);
|
30 | });
|
31 |
|
32 | testSingleCase(chrono, INPUT, { instant: REF_INSTANT, timezone: null }, (result) => {
|
33 | expect(result).toBeDate(EXPECTED_INSTANT);
|
34 | });
|
35 |
|
36 | testSingleCase(chrono, INPUT, { instant: REF_INSTANT, timezone: "" }, (result) => {
|
37 | expect(result).toBeDate(EXPECTED_INSTANT);
|
38 | });
|
39 | });
|
40 |
|
41 | test("Test - Timezone difference on reference date", function () {
|
42 |
|
43 |
|
44 | const refInstant = new Date("Sun Jun 06 2021 19:00:00 GMT+0900 (JST)");
|
45 |
|
46 | testSingleCase(chrono, "At 4pm tomorrow", { instant: refInstant, timezone: "BST" }, (result) => {
|
47 | const expectedInstant = new Date("Mon Jun 07 2021 16:00:00 GMT+0100 (BST)");
|
48 | expect(result).toBeDate(expectedInstant);
|
49 | });
|
50 |
|
51 | testSingleCase(chrono, "At 4pm tomorrow", { instant: refInstant, timezone: "JST" }, (result) => {
|
52 | const expectedInstant = new Date("Mon Jun 07 2021 16:00:00 GMT+0900 (JST)");
|
53 | expect(result).toBeDate(expectedInstant);
|
54 | });
|
55 | });
|
56 |
|
57 | test("Test - Timezone difference on reference date #2", function () {
|
58 | const refInstant = new Date("2024-02-21T10:00:00+1300");
|
59 |
|
60 | testSingleCase(chrono, "yesterday 18:00", { instant: refInstant, timezone: 780 }, (result) => {
|
61 |
|
62 |
|
63 |
|
64 |
|
65 | });
|
66 | });
|
67 |
|
68 | test("Test - Timezone difference on written date", function () {
|
69 |
|
70 |
|
71 | const refInstant = new Date("Sun Jun 06 2021 19:00:00 GMT+0900 (JST)");
|
72 |
|
73 | testSingleCase(chrono, "Sun Jun 06 2021 19:00:00", { timezone: "JST" }, (result) => {
|
74 | expect(result).toBeDate(refInstant);
|
75 | });
|
76 |
|
77 | testSingleCase(chrono, "Sun Jun 06 2021 11:00:00", { timezone: "BST" }, (result) => {
|
78 | expect(result).toBeDate(refInstant);
|
79 | });
|
80 |
|
81 | testSingleCase(chrono, "Sun Jun 06 2021 11:00:00", { timezone: 60 }, (result) => {
|
82 | expect(result).toBeDate(refInstant);
|
83 | });
|
84 | });
|
85 |
|
86 | test("Test - Precise [now] mentioned", function () {
|
87 | const refDate = new Date("Sat Mar 13 2021 14:22:14 GMT+0900 (Japan Standard Time)");
|
88 |
|
89 | testSingleCase(chrono, "now", refDate, (result) => {
|
90 | expect(result).toBeDate(refDate);
|
91 | });
|
92 |
|
93 | testSingleCase(chrono, "now", { instant: refDate }, (result) => {
|
94 | expect(result).toBeDate(refDate);
|
95 | });
|
96 |
|
97 | testSingleCase(chrono, "now", { instant: refDate, timezone: 540 }, (result) => {
|
98 | expect(result).toBeDate(refDate);
|
99 | });
|
100 |
|
101 | testSingleCase(chrono, "now", { instant: refDate, timezone: "JST" }, (result) => {
|
102 | expect(result).toBeDate(refDate);
|
103 | });
|
104 |
|
105 | testSingleCase(chrono, "now", { instant: refDate, timezone: -300 }, (result) => {
|
106 | expect(result).toBeDate(refDate);
|
107 | });
|
108 | });
|
109 |
|
110 | test("Test - Precise date/time mentioned", function () {
|
111 | const text = "Sat Mar 13 2021 14:22:14 GMT+0900";
|
112 | const refDate = new Date();
|
113 |
|
114 | testSingleCase(chrono, text, refDate, (result, text) => {
|
115 | expect(result).toBeDate(new Date(text));
|
116 | });
|
117 |
|
118 | testSingleCase(chrono, text, { instant: refDate }, (result) => {
|
119 | expect(result).toBeDate(new Date(text));
|
120 | });
|
121 |
|
122 | testSingleCase(chrono, text, { instant: refDate, timezone: 540 }, (result) => {
|
123 | expect(result).toBeDate(new Date(text));
|
124 | });
|
125 |
|
126 | testSingleCase(chrono, text, { instant: refDate, timezone: "JST" }, (result) => {
|
127 | expect(result).toBeDate(new Date(text));
|
128 | });
|
129 |
|
130 | testSingleCase(chrono, text, { instant: refDate, timezone: -300 }, (result) => {
|
131 | expect(result).toBeDate(new Date(text));
|
132 | });
|
133 | });
|