UNPKG

4.84 kBPlain TextView Raw
1import * as chrono from "../src/";
2import { testSingleCase } from "./test_util";
3
4test("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
19test("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
41test("Test - Timezone difference on reference date", function () {
42 // Sun Jun 06 2021 19:00:00 GMT+0900 (JST)
43 // Sun Jun 06 2021 11:00:00 GMT+0100 (BST)
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
57test("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 // expect(result.start.get("year")).toBe(2024);
62 // expect(result.start.get("month")).toBe(2);
63 // expect(result.start.get("day")).toBe(20);
64 // expect(result).toBeDate(new Date("2024-02-20T18:00:00+1300"));
65 });
66});
67
68test("Test - Timezone difference on written date", function () {
69 // Sun Jun 06 2021 19:00:00 GMT+0900 (JST)
70 // Sun Jun 06 2021 11:00:00 GMT+0100 (BST)
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
86test("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
110test("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});