chrono-node 2.9.1 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/locales/de/parsers/DECasualTimeParser.js +7 -0
- package/dist/cjs/locales/de/parsers/DECasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/en/configuration.js +2 -0
- package/dist/cjs/locales/en/configuration.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
- package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js +31 -0
- package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js +7 -0
- package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js +5 -0
- package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
- package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +5 -0
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
- package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/cjs/locales/zh/hans/index.js +2 -0
- package/dist/cjs/locales/zh/hans/index.js.map +1 -1
- package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
- package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +80 -0
- package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
- package/dist/cjs/locales/zh/hant/index.js +2 -0
- package/dist/cjs/locales/zh/hant/index.js.map +1 -1
- package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
- package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +80 -0
- package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
- package/dist/cjs/results.js +15 -9
- package/dist/cjs/results.js.map +1 -1
- package/dist/esm/locales/de/parsers/DECasualTimeParser.js +7 -0
- package/dist/esm/locales/de/parsers/DECasualTimeParser.js.map +1 -1
- package/dist/esm/locales/en/configuration.js +2 -0
- package/dist/esm/locales/en/configuration.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
- package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js +28 -0
- package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FICasualTimeParser.js +7 -0
- package/dist/esm/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
- package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js +5 -0
- package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
- package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +5 -0
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
- package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/esm/locales/zh/hans/index.js +2 -0
- package/dist/esm/locales/zh/hans/index.js.map +1 -1
- package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
- package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +77 -0
- package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
- package/dist/esm/locales/zh/hant/index.js +2 -0
- package/dist/esm/locales/zh/hant/index.js.map +1 -1
- package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
- package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +77 -0
- package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
- package/dist/esm/results.js +14 -9
- package/dist/esm/results.js.map +1 -1
- package/package.json +5 -1
- package/src/locales/de/parsers/DECasualTimeParser.ts +7 -0
- package/src/locales/en/configuration.ts +2 -0
- package/src/locales/en/parsers/ENMonthNameLittleEndianParser.ts +1 -1
- package/src/locales/en/parsers/ENYearMonthNameParser.ts +38 -0
- package/src/locales/fi/parsers/FICasualTimeParser.ts +7 -0
- package/src/locales/fr/parsers/FRCasualTimeParser.ts +5 -0
- package/src/locales/fr/parsers/FRTimeUnitRelativeFormatParser.ts +2 -1
- package/src/locales/it/parsers/ITCasualTimeParser.ts +5 -0
- package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +1 -1
- package/src/locales/zh/hans/index.ts +2 -0
- package/src/locales/zh/hans/parsers/ZHHansAgoFormatParser.ts +87 -0
- package/src/locales/zh/hant/index.ts +2 -0
- package/src/locales/zh/hant/parsers/ZHHantAgoFormatParser.ts +87 -0
- package/src/results.ts +40 -9
- package/test/calculation_duration.test.ts +0 -165
- package/test/calculation_weekdays.test.ts +0 -133
- package/test/de/de_casual.test.ts +0 -322
- package/test/de/de_dash.test.ts +0 -32
- package/test/de/de_month_name_little_endian.test.ts +0 -273
- package/test/de/de_time_exp.test.ts +0 -223
- package/test/de/de_time_units_casual_relative.test.ts +0 -120
- package/test/de/de_time_units_within.test.ts +0 -119
- package/test/de/de_weekday.test.ts +0 -158
- package/test/de/de_year.test.ts +0 -147
- package/test/debugging.test.ts +0 -17
- package/test/en/en.test.ts +0 -191
- package/test/en/en_casual.test.ts +0 -425
- package/test/en/en_inter_std.test.ts +0 -118
- package/test/en/en_merging_relative_dates.test.ts +0 -50
- package/test/en/en_month.test.ts +0 -295
- package/test/en/en_month_name_little_endian.test.ts +0 -448
- package/test/en/en_month_name_middle_endian.test.ts +0 -386
- package/test/en/en_performance.test.ts +0 -26
- package/test/en/en_relative.test.ts +0 -393
- package/test/en/en_slash.test.ts +0 -284
- package/test/en/en_time_exp.test.ts +0 -535
- package/test/en/en_time_units_ago.test.ts +0 -357
- package/test/en/en_time_units_casual_relative.test.ts +0 -186
- package/test/en/en_time_units_later.test.ts +0 -361
- package/test/en/en_time_units_within.test.ts +0 -417
- package/test/en/en_timezone_exp.test.ts +0 -410
- package/test/en/en_weekday.test.ts +0 -573
- package/test/en/en_year.test.ts +0 -138
- package/test/en/en_year_month_day.test.ts +0 -101
- package/test/en/negative_cases.test.ts +0 -99
- package/test/es/es_casual.test.ts +0 -175
- package/test/es/es_month_name_little_endian.test.ts +0 -217
- package/test/es/es_slash.test.ts +0 -26
- package/test/es/es_time_exp.test.ts +0 -175
- package/test/es/es_time_units_within.test.ts +0 -119
- package/test/fi/fi_casual.test.ts +0 -85
- package/test/fi/fi_casual_time.test.ts +0 -56
- package/test/fi/fi_month_name_little_endian.test.ts +0 -50
- package/test/fi/fi_time_exp.test.ts +0 -39
- package/test/fi/fi_time_units_ago.test.ts +0 -93
- package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
- package/test/fi/fi_time_units_within.test.ts +0 -74
- package/test/fi/fi_weekday.test.ts +0 -90
- package/test/fr/fr_casual.test.ts +0 -300
- package/test/fr/fr_little_endian.test.ts +0 -320
- package/test/fr/fr_slash.test.ts +0 -49
- package/test/fr/fr_time_exp.test.ts +0 -588
- package/test/fr/fr_time_units_ago.test.ts +0 -103
- package/test/fr/fr_time_units_casual_relative.test.ts +0 -108
- package/test/fr/fr_time_units_within.test.ts +0 -129
- package/test/fr/fr_weekday.test.ts +0 -130
- package/test/it/it_casual.test.ts +0 -44
- package/test/it/it_month_name_little_endian.test.ts +0 -28
- package/test/it/it_month_name_middle_endian.test.ts +0 -39
- package/test/it/it_time_exp.test.ts +0 -84
- package/test/it/it_weekday.test.ts +0 -37
- package/test/it/it_year_month_day.test.ts +0 -41
- package/test/ja/ja_casual.test.ts +0 -73
- package/test/ja/ja_slash_date_format.test.ts +0 -60
- package/test/ja/ja_standard.test.ts +0 -235
- package/test/ja/ja_time_exp.test.ts +0 -305
- package/test/ja/ja_weekday.test.ts +0 -183
- package/test/nl/nl_casual.test.ts +0 -408
- package/test/nl/nl_month.test.ts +0 -205
- package/test/nl/nl_month_name_little_endian.test.ts +0 -358
- package/test/nl/nl_relative.test.ts +0 -242
- package/test/nl/nl_slash.test.ts +0 -206
- package/test/nl/nl_time_exp.test.ts +0 -79
- package/test/nl/nl_time_units_ago.test.ts +0 -243
- package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
- package/test/nl/nl_time_units_later.test.ts +0 -250
- package/test/nl/nl_time_units_within.test.ts +0 -225
- package/test/nl/nl_weekday.test.ts +0 -216
- package/test/pt/pt_casual.test.ts +0 -175
- package/test/pt/pt_month_name_little_endian.test.ts +0 -217
- package/test/pt/pt_slash.test.ts +0 -26
- package/test/pt/pt_time_exp.test.ts +0 -175
- package/test/result.test.ts +0 -283
- package/test/ru/ru_casual.test.ts +0 -159
- package/test/ru/ru_month.test.ts +0 -70
- package/test/ru/ru_month_name_little_endian.test.ts +0 -145
- package/test/ru/ru_relative.test.ts +0 -107
- package/test/ru/ru_time_exp.test.ts +0 -111
- package/test/ru/ru_time_units_ago.test.ts +0 -48
- package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
- package/test/ru/ru_time_units_within.test.ts +0 -16
- package/test/ru/ru_weekday.test.ts +0 -52
- package/test/sv/sv_casual.test.ts +0 -87
- package/test/sv/sv_month_name_little_endian.test.ts +0 -48
- package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
- package/test/sv/sv_weekday.test.ts +0 -68
- package/test/system.test.ts +0 -247
- package/test/system_timezone.test.ts +0 -284
- package/test/test_util.ts +0 -135
- package/test/uk/uk_casual.test.ts +0 -153
- package/test/uk/uk_month.test.ts +0 -70
- package/test/uk/uk_month_name_little_endian.test.ts +0 -148
- package/test/uk/uk_relative.test.ts +0 -107
- package/test/uk/uk_time_exp.test.ts +0 -111
- package/test/uk/uk_time_units_ago.test.ts +0 -48
- package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
- package/test/uk/uk_time_units_within.test.ts +0 -16
- package/test/uk/uk_weekday.test.ts +0 -52
- package/test/vi/vi_casual.test.ts +0 -84
- package/test/vi/vi_casual_time.test.ts +0 -77
- package/test/vi/vi_date_range.test.ts +0 -61
- package/test/vi/vi_forward_date.test.ts +0 -45
- package/test/vi/vi_month_year.test.ts +0 -40
- package/test/vi/vi_negative_cases.test.ts +0 -60
- package/test/vi/vi_slash.test.ts +0 -36
- package/test/vi/vi_standard.test.ts +0 -86
- package/test/vi/vi_strict.test.ts +0 -67
- package/test/vi/vi_time_exp.test.ts +0 -99
- package/test/vi/vi_time_units_ago.test.ts +0 -56
- package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
- package/test/vi/vi_time_units_later.test.ts +0 -43
- package/test/vi/vi_time_units_within.test.ts +0 -24
- package/test/vi/vi_weekday.test.ts +0 -77
- package/test/vi/vi_year.test.ts +0 -42
- package/test/zh/hans/zh_hans_casual.test.ts +0 -242
- package/test/zh/hans/zh_hans_date.test.ts +0 -116
- package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
- package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
- package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
- package/test/zh/hant/zh_hant_casual.test.ts +0 -260
- package/test/zh/hant/zh_hant_date.test.ts +0 -116
- package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
- package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
- package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
- package/test/zh/zh.test.ts +0 -36
- package/tsconfig.build.esm.json +0 -8
- package/tsconfig.build.json +0 -10
- package/tsconfig.json +0 -29
package/test/result.test.ts
DELETED
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../src/results";
|
|
2
|
-
|
|
3
|
-
test("Test - Create & manipulate parsing components", () => {
|
|
4
|
-
const reference = ReferenceWithTimezone.fromDate(new Date());
|
|
5
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24 });
|
|
6
|
-
|
|
7
|
-
expect(components.get("year")).toBe(2014);
|
|
8
|
-
expect(components.get("month")).toBe(11);
|
|
9
|
-
expect(components.get("day")).toBe(24);
|
|
10
|
-
expect(components.date()).toBeDefined();
|
|
11
|
-
expect(components.tags().size).toBe(0);
|
|
12
|
-
|
|
13
|
-
// null
|
|
14
|
-
expect(components.get("weekday")).toBeNull();
|
|
15
|
-
expect(components.isCertain("weekday")).toBe(false);
|
|
16
|
-
|
|
17
|
-
// "imply"
|
|
18
|
-
components.imply("weekday", 1);
|
|
19
|
-
expect(components.get("weekday")).toBe(1);
|
|
20
|
-
expect(components.isCertain("weekday")).toBe(false);
|
|
21
|
-
|
|
22
|
-
// "assign" overrides "imply"
|
|
23
|
-
components.assign("weekday", 2);
|
|
24
|
-
expect(components.get("weekday")).toBe(2);
|
|
25
|
-
expect(components.isCertain("weekday")).toBe(true);
|
|
26
|
-
|
|
27
|
-
// "imply" doesn't override "assign"
|
|
28
|
-
components.imply("year", 2013);
|
|
29
|
-
expect(components.get("year")).toBe(2014);
|
|
30
|
-
|
|
31
|
-
// "assign" overrides "assign"
|
|
32
|
-
components.assign("year", 2013);
|
|
33
|
-
expect(components.get("year")).toBe(2013);
|
|
34
|
-
|
|
35
|
-
components.addTag("custom/testing_component_tag");
|
|
36
|
-
expect(components.tags().size).toBe(1);
|
|
37
|
-
expect(components.tags()).toContain("custom/testing_component_tag");
|
|
38
|
-
expect(components.toString()).toContain("custom/testing_component_tag");
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test("Test - Creating component from reference date (and duration)", () => {
|
|
42
|
-
{
|
|
43
|
-
const reference = ReferenceWithTimezone.fromDate(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
44
|
-
const components = ParsingComponents.createRelativeFromReference(reference);
|
|
45
|
-
expect(components.date()).toStrictEqual(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
46
|
-
expect(components.isCertain("day")).toBe(true);
|
|
47
|
-
expect(components.isCertain("hour")).toBe(true);
|
|
48
|
-
}
|
|
49
|
-
{
|
|
50
|
-
const reference = ReferenceWithTimezone.fromDate(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
51
|
-
const components = ParsingComponents.createRelativeFromReference(reference, { day: 3 });
|
|
52
|
-
expect(components.date()).toStrictEqual(new Date("Sat, Aug 30 2022 12:52:11"));
|
|
53
|
-
expect(components.isCertain("day")).toBe(true);
|
|
54
|
-
expect(components.isCertain("hour")).toBe(false);
|
|
55
|
-
}
|
|
56
|
-
{
|
|
57
|
-
const reference = ReferenceWithTimezone.fromDate(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
58
|
-
const components = ParsingComponents.createRelativeFromReference(reference, { day: 1, hour: 3 });
|
|
59
|
-
expect(components.date()).toStrictEqual(new Date("Sat, Aug 28 2022 15:52:11"));
|
|
60
|
-
expect(components.isCertain("day")).toBe(true);
|
|
61
|
-
expect(components.isCertain("hour")).toBe(true);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
test("Test - Create & manipulate parsing results", () => {
|
|
66
|
-
const reference = new ReferenceWithTimezone(new Date());
|
|
67
|
-
const text = "1 - 2 hour later";
|
|
68
|
-
|
|
69
|
-
const startComponents = ParsingComponents.createRelativeFromReference(reference, { "hour": 1 }).addTag(
|
|
70
|
-
"custom/testing_start_component_tag"
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
const endComponents = ParsingComponents.createRelativeFromReference(reference, { "hour": 2 }).addTag(
|
|
74
|
-
"custom/testing_end_component_tag"
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
const result = new ParsingResult(reference, 0, text, startComponents, endComponents);
|
|
78
|
-
|
|
79
|
-
// The result's date() should be the same as the start components' date()
|
|
80
|
-
expect(result.date()).toStrictEqual(startComponents.date());
|
|
81
|
-
|
|
82
|
-
// The result's tags should include both the start and end components' tags
|
|
83
|
-
expect(result.tags()).toContain("custom/testing_start_component_tag");
|
|
84
|
-
expect(result.tags()).toContain("custom/testing_end_component_tag");
|
|
85
|
-
|
|
86
|
-
// The result's toString() should include the text and tags
|
|
87
|
-
expect(result.toString()).toContain(text);
|
|
88
|
-
expect(result.toString()).toContain("custom/testing_start_component_tag");
|
|
89
|
-
expect(result.toString()).toContain("custom/testing_end_component_tag");
|
|
90
|
-
|
|
91
|
-
// The result's addTag() and addTags() should add the tags to both start/end components
|
|
92
|
-
result.addTag("custom/testing_result_tag1");
|
|
93
|
-
result.addTags(["custom/testing_result_tag2"]);
|
|
94
|
-
expect(startComponents.tags()).toContain("custom/testing_result_tag1");
|
|
95
|
-
expect(startComponents.tags()).toContain("custom/testing_result_tag2");
|
|
96
|
-
expect(endComponents.tags()).toContain("custom/testing_result_tag1");
|
|
97
|
-
expect(endComponents.tags()).toContain("custom/testing_result_tag2");
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test("Test - Calendar checking with implied components", () => {
|
|
101
|
-
const reference = new ReferenceWithTimezone(new Date());
|
|
102
|
-
|
|
103
|
-
{
|
|
104
|
-
const components = new ParsingComponents(reference, {
|
|
105
|
-
"day": 13,
|
|
106
|
-
"month": 3,
|
|
107
|
-
"year": 2021,
|
|
108
|
-
"hour": 14,
|
|
109
|
-
"minute": 22,
|
|
110
|
-
"second": 14,
|
|
111
|
-
"millisecond": 0,
|
|
112
|
-
});
|
|
113
|
-
components.imply("timezoneOffset", -300);
|
|
114
|
-
|
|
115
|
-
expect(components.isValidDate()).toBe(true);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
test("Test - Calendar Checking", () => {
|
|
120
|
-
const reference = new ReferenceWithTimezone(new Date());
|
|
121
|
-
|
|
122
|
-
{
|
|
123
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24 });
|
|
124
|
-
expect(components.isValidDate()).toBe(true);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
{
|
|
128
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24, hour: 12 });
|
|
129
|
-
expect(components.isValidDate()).toBe(true);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
{
|
|
133
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24, hour: 12, minute: 30 });
|
|
134
|
-
expect(components.isValidDate()).toBe(true);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
const components = new ParsingComponents(reference, {
|
|
139
|
-
year: 2014,
|
|
140
|
-
month: 11,
|
|
141
|
-
day: 24,
|
|
142
|
-
hour: 12,
|
|
143
|
-
minute: 30,
|
|
144
|
-
second: 30,
|
|
145
|
-
});
|
|
146
|
-
expect(components.isValidDate()).toBe(true);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
{
|
|
150
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 13, day: 24 });
|
|
151
|
-
expect(components.isValidDate()).toBe(false);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
{
|
|
155
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 32 });
|
|
156
|
-
expect(components.isValidDate()).toBe(false);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
{
|
|
160
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24, hour: 24 });
|
|
161
|
-
expect(components.isValidDate()).toBe(false);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
{
|
|
165
|
-
const components = new ParsingComponents(reference, { year: 2014, month: 11, day: 24, hour: 12, minute: 60 });
|
|
166
|
-
expect(components.isValidDate()).toBe(false);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
{
|
|
170
|
-
const components = new ParsingComponents(reference, {
|
|
171
|
-
year: 2014,
|
|
172
|
-
month: 11,
|
|
173
|
-
day: 24,
|
|
174
|
-
hour: 12,
|
|
175
|
-
minute: 30,
|
|
176
|
-
second: 60,
|
|
177
|
-
});
|
|
178
|
-
expect(components.isValidDate()).toBe(false);
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
test("Test - Checking non-existing date during DST skip", () => {
|
|
183
|
-
// Only CET (or CEST) timezones where the DST starts on "Sunday, March 27, 2022" at "02:00 (2 am) local time"
|
|
184
|
-
const dateDstPre = new Date(2022, 3 - 1, 27, 2);
|
|
185
|
-
const dateDstPost = new Date(2022, 3 - 1, 27, 3);
|
|
186
|
-
if (dateDstPre.getTime() == dateDstPost.getTime()) {
|
|
187
|
-
const reference = new ReferenceWithTimezone(new Date());
|
|
188
|
-
|
|
189
|
-
// On "Sunday, March 27, 2022" at "02:00 local time", the clock is moved forward to "03:00 local time".
|
|
190
|
-
// Thus, the time between "02:00 and 02:59:59" does not exist.
|
|
191
|
-
expect(
|
|
192
|
-
new ParsingComponents(reference, { year: 2022, month: 3, day: 27, hour: 2, minute: 0 }).isValidDate()
|
|
193
|
-
).toBe(false);
|
|
194
|
-
expect(
|
|
195
|
-
new ParsingComponents(reference, { year: 2022, month: 3, day: 27, hour: 2, minute: 1 }).isValidDate()
|
|
196
|
-
).toBe(false);
|
|
197
|
-
expect(
|
|
198
|
-
new ParsingComponents(reference, { year: 2022, month: 3, day: 27, hour: 2, minute: 59 }).isValidDate()
|
|
199
|
-
).toBe(false);
|
|
200
|
-
|
|
201
|
-
// Otherwise, it
|
|
202
|
-
expect(
|
|
203
|
-
new ParsingComponents(reference, { year: 2022, month: 3, day: 27, hour: 1, minute: 59 }).isValidDate()
|
|
204
|
-
).toBe(true);
|
|
205
|
-
expect(
|
|
206
|
-
new ParsingComponents(reference, { year: 2022, month: 3, day: 27, hour: 3, minute: 0 }).isValidDate()
|
|
207
|
-
).toBe(true);
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
test("Test - Getting timezone adjust date from references", () => {
|
|
212
|
-
{
|
|
213
|
-
const reference = ReferenceWithTimezone.fromInput({
|
|
214
|
-
instant: new Date("Wed Jun 09 2021 07:21:32 GMT+0900 (JST)"),
|
|
215
|
-
timezone: 9 * 60,
|
|
216
|
-
});
|
|
217
|
-
expect(reference.getDateWithAdjustedTimezone()).toStrictEqual(new Date(2021, 6 - 1, 9, 7, 21, 32));
|
|
218
|
-
}
|
|
219
|
-
{
|
|
220
|
-
const reference = ReferenceWithTimezone.fromInput({
|
|
221
|
-
instant: new Date("Wed Jun 09 2021 07:21:32 GMT+0900 (JST)"),
|
|
222
|
-
timezone: "JST",
|
|
223
|
-
});
|
|
224
|
-
expect(reference.getDateWithAdjustedTimezone()).toStrictEqual(new Date(2021, 6 - 1, 9, 7, 21, 32));
|
|
225
|
-
}
|
|
226
|
-
{
|
|
227
|
-
const reference = ReferenceWithTimezone.fromInput({
|
|
228
|
-
instant: new Date("Wed Jun 09 2021 07:21:32 GMT-0500 (CDT)"),
|
|
229
|
-
timezone: "CDT",
|
|
230
|
-
});
|
|
231
|
-
expect(reference.getDateWithAdjustedTimezone()).toStrictEqual(new Date(2021, 6 - 1, 9, 7, 21, 32));
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
test("Test - ParsingComponents.addDurationAsImplied", () => {
|
|
236
|
-
{
|
|
237
|
-
const reference = ReferenceWithTimezone.fromDate(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
238
|
-
const components = ParsingComponents.createRelativeFromReference(reference);
|
|
239
|
-
components.addDurationAsImplied({ hour: 3 });
|
|
240
|
-
|
|
241
|
-
expect(components.date()).toStrictEqual(new Date("Sat, Aug 27 2022 15:52:11"));
|
|
242
|
-
expect(components.isCertain("second")).toBe(false);
|
|
243
|
-
expect(components.isCertain("minute")).toBe(false);
|
|
244
|
-
expect(components.isCertain("hour")).toBe(false);
|
|
245
|
-
}
|
|
246
|
-
{
|
|
247
|
-
const reference = ReferenceWithTimezone.fromDate(new Date("Sat, Aug 27 2022 12:52:11"));
|
|
248
|
-
const components = ParsingComponents.createRelativeFromReference(reference);
|
|
249
|
-
components.addDurationAsImplied({ day: 3 });
|
|
250
|
-
expect(components.date()).toStrictEqual(new Date("Sat, Aug 30 2022 12:52:11"));
|
|
251
|
-
expect(components.isCertain("day")).toBe(false);
|
|
252
|
-
expect(components.isCertain("weekday")).toBe(false);
|
|
253
|
-
expect(components.isCertain("month")).toBe(false);
|
|
254
|
-
expect(components.isCertain("year")).toBe(false);
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
test("Test - ParsingComponents.addDurationAsImplied on different timezones", () => {
|
|
259
|
-
{
|
|
260
|
-
// Thu Feb 27 2025 17:00:00 GMT+0000
|
|
261
|
-
// Fri Feb 28 2025 02:00:00 GMT+0900 (JST)
|
|
262
|
-
const refInstant = new Date("Thu Feb 27 2025 17:00:00 GMT+0000");
|
|
263
|
-
const reference = ReferenceWithTimezone.fromInput({ instant: refInstant, timezone: "JST" });
|
|
264
|
-
const components = ParsingComponents.createRelativeFromReference(reference);
|
|
265
|
-
components.addDurationAsImplied({ hour: 3 });
|
|
266
|
-
expect(components.date()).toStrictEqual(new Date("Fri Feb 28 2025 05:00:00 GMT+0900 (JST)"));
|
|
267
|
-
|
|
268
|
-
components.addDurationAsImplied({ day: 3 });
|
|
269
|
-
expect(components.date()).toStrictEqual(new Date("Mon Mar 3 2025 05:00:00 GMT+0900 (JST)"));
|
|
270
|
-
}
|
|
271
|
-
{
|
|
272
|
-
// Thu Feb 27 2025 17:00:00 GMT+0000
|
|
273
|
-
// Thu Feb 27 2025 09:00:00 GMT-0800 (PST)
|
|
274
|
-
const refInstant = new Date("Thu Feb 27 2025 17:00:00 GMT+0000");
|
|
275
|
-
const reference = ReferenceWithTimezone.fromInput({ instant: refInstant, timezone: "PST" });
|
|
276
|
-
const components = ParsingComponents.createRelativeFromReference(reference);
|
|
277
|
-
components.addDurationAsImplied({ hour: 3 });
|
|
278
|
-
expect(components.date()).toStrictEqual(new Date("Thu Feb 27 2025 12:00:00 GMT-0800 (PST)"));
|
|
279
|
-
|
|
280
|
-
components.addDurationAsImplied({ day: 3 });
|
|
281
|
-
expect(components.date()).toStrictEqual(new Date("Mon Mar 2 2025 12:00:00 GMT-0800 (PST)"));
|
|
282
|
-
}
|
|
283
|
-
});
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
test("Test - Single Expression", () => {
|
|
5
|
-
testSingleCase(chrono.ru.casual, "Дедлайн сегодня", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
6
|
-
expect(result.index).toBe(8);
|
|
7
|
-
expect(result.text).toBe("сегодня");
|
|
8
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 17, 10));
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
testSingleCase(chrono.ru.casual, "Дедлайн завтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
12
|
-
expect(result.index).toBe(8);
|
|
13
|
-
expect(result.text).toBe("завтра");
|
|
14
|
-
expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
testSingleCase(chrono.ru.casual, "Дедлайн послезавтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
18
|
-
expect(result.index).toBe(8);
|
|
19
|
-
expect(result.text).toBe("послезавтра");
|
|
20
|
-
expect(result.start).toBeDate(new Date(2012, 7, 12, 17, 10));
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
testSingleCase(chrono.ru.casual, "Дедлайн послепослезавтра", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
24
|
-
expect(result.index).toBe(8);
|
|
25
|
-
expect(result.text).toBe("послепослезавтра");
|
|
26
|
-
expect(result.start).toBeDate(new Date(2012, 7, 13, 17, 10));
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
testSingleCase(chrono.ru.casual, "Дедлайн вчера", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
30
|
-
expect(result.index).toBe(8);
|
|
31
|
-
expect(result.text).toBe("вчера");
|
|
32
|
-
expect(result.start).toBeDate(new Date(2012, 7, 9, 17, 10));
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
testSingleCase(chrono.ru.casual, "Дедлайн позавчера", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
36
|
-
expect(result.index).toBe(8);
|
|
37
|
-
expect(result.text).toBe("позавчера");
|
|
38
|
-
expect(result.start).toBeDate(new Date(2012, 7, 8, 17, 10));
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
testSingleCase(chrono.ru.casual, "Дедлайн позапозавчера", new Date(2012, 7, 10, 17, 10), (result) => {
|
|
42
|
-
expect(result.index).toBe(8);
|
|
43
|
-
expect(result.text).toBe("позапозавчера");
|
|
44
|
-
expect(result.start).toBeDate(new Date(2012, 7, 7, 17, 10));
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
testSingleCase(chrono.ru.casual, "Дедлайн сейчас", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
48
|
-
expect(result.index).toBe(8);
|
|
49
|
-
expect(result.text).toBe("сейчас");
|
|
50
|
-
expect(result.start).toBeDate(result.refDate);
|
|
51
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
testSingleCase(chrono.ru.casual, "Дедлайн утром", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
55
|
-
expect(result.index).toBe(8);
|
|
56
|
-
expect(result.text).toBe("утром");
|
|
57
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
testSingleCase(chrono.ru.casual, "Дедлайн этим утром", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
61
|
-
expect(result.index).toBe(8);
|
|
62
|
-
expect(result.text).toBe("этим утром");
|
|
63
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 0, 0, 0));
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
testSingleCase(chrono.ru.casual, "Дедлайн в полдень", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
67
|
-
expect(result.index).toBe(8);
|
|
68
|
-
expect(result.text).toBe("в полдень");
|
|
69
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 0, 0, 0));
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
testSingleCase(chrono.ru.casual, "Дедлайн прошлым вечером", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
73
|
-
expect(result.index).toBe(8);
|
|
74
|
-
expect(result.text).toBe("прошлым вечером");
|
|
75
|
-
expect(result.start).toBeDate(new Date(2012, 7, 9, 20, 0, 0, 0));
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
testSingleCase(chrono.ru.casual, "Дедлайн вечером", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
79
|
-
expect(result.index).toBe(8);
|
|
80
|
-
expect(result.text).toBe("вечером");
|
|
81
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 20, 0, 0, 0));
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
testSingleCase(chrono.ru.casual, "Дедлайн прошлой ночью", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
|
85
|
-
expect(result.index).toBe(8);
|
|
86
|
-
expect(result.text).toBe("прошлой ночью");
|
|
87
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
testSingleCase(chrono.ru.casual, "Дедлайн прошлой ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
|
91
|
-
expect(result.index).toBe(8);
|
|
92
|
-
expect(result.text).toBe("прошлой ночью");
|
|
93
|
-
expect(result.start).toBeDate(new Date(2012, 7, 9, 0, 0, 0, 0));
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
testSingleCase(chrono.ru.casual, "Дедлайн сегодня ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
|
97
|
-
expect(result.index).toBe(8);
|
|
98
|
-
expect(result.text).toBe("сегодня ночью");
|
|
99
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
testSingleCase(chrono.ru.casual, "Дедлайн этой ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
|
103
|
-
expect(result.index).toBe(8);
|
|
104
|
-
expect(result.text).toBe("этой ночью");
|
|
105
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
testSingleCase(chrono.ru.casual, "Дедлайн ночью", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
|
109
|
-
expect(result.index).toBe(8);
|
|
110
|
-
expect(result.text).toBe("ночью");
|
|
111
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
testSingleCase(chrono.ru.casual, "Дедлайн в полночь", new Date(2012, 7, 10, 2, 9, 10, 11), (result) => {
|
|
115
|
-
expect(result.index).toBe(8);
|
|
116
|
-
expect(result.text).toBe("в полночь");
|
|
117
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 0, 0, 0));
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
test("Test - Combined Expression", () => {
|
|
122
|
-
testSingleCase(chrono.ru.casual, "Дедлайн вчера вечером", new Date(2012, 7, 10, 12), (result) => {
|
|
123
|
-
expect(result.index).toBe(8);
|
|
124
|
-
expect(result.text).toBe("вчера вечером");
|
|
125
|
-
expect(result.start).toBeDate(new Date(2012, 7, 9, 20));
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
testSingleCase(chrono.ru.casual, "Дедлайн завтра утром", new Date(2012, 8, 10, 14), (result) => {
|
|
129
|
-
expect(result.index).toBe(8);
|
|
130
|
-
expect(result.text).toBe("завтра утром");
|
|
131
|
-
expect(result.start).toBeDate(new Date(2012, 8, 11, 6));
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
test("Test - Casual date range", () => {
|
|
136
|
-
testSingleCase(chrono.ru.casual, "Событие с сегодня и до послезавтра", new Date(2012, 7, 4, 12), (result) => {
|
|
137
|
-
expect(result.index).toBe(8);
|
|
138
|
-
expect(result.text).toBe("с сегодня и до послезавтра");
|
|
139
|
-
expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
|
|
140
|
-
expect(result.end).toBeDate(new Date(2012, 7, 6, 12));
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
testSingleCase(chrono.ru.casual, "Событие сегодня-завтра", new Date(2012, 7, 10, 12), (result) => {
|
|
144
|
-
expect(result.index).toBe(8);
|
|
145
|
-
expect(result.text).toBe("сегодня-завтра");
|
|
146
|
-
expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
|
|
147
|
-
expect(result.end).toBeDate(new Date(2012, 7, 11, 12));
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
test("Test - Random negative text", () => {
|
|
152
|
-
testUnexpectedResult(chrono.ru, "несегодня");
|
|
153
|
-
|
|
154
|
-
testUnexpectedResult(chrono.ru, "зявтра");
|
|
155
|
-
|
|
156
|
-
testUnexpectedResult(chrono.ru, "вчеера");
|
|
157
|
-
|
|
158
|
-
testUnexpectedResult(chrono.ru, "январ");
|
|
159
|
-
});
|
package/test/ru/ru_month.test.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
test("Test - Month-Year expression", function () {
|
|
5
|
-
testSingleCase(chrono.ru, "Сентябрь 2012", (result) => {
|
|
6
|
-
expect(result.index).toBe(0);
|
|
7
|
-
expect(result.text).toBe("Сентябрь 2012");
|
|
8
|
-
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
testSingleCase(chrono.ru, "сен 2012", (result) => {
|
|
12
|
-
expect(result.index).toBe(0);
|
|
13
|
-
expect(result.text).toBe("сен 2012");
|
|
14
|
-
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
testSingleCase(chrono.ru, "сен. 2012", (result) => {
|
|
18
|
-
expect(result.index).toBe(0);
|
|
19
|
-
expect(result.text).toBe("сен. 2012");
|
|
20
|
-
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
testSingleCase(chrono.ru, "сен-2012", (result) => {
|
|
24
|
-
expect(result.index).toBe(0);
|
|
25
|
-
expect(result.text).toBe("сен-2012");
|
|
26
|
-
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test("Test - Month-Only expression", function () {
|
|
31
|
-
testSingleCase(chrono.ru, "в январе", new Date(2020, 11 - 1, 22), (result) => {
|
|
32
|
-
expect(result.index).toBe(0);
|
|
33
|
-
expect(result.text).toBe("в январе");
|
|
34
|
-
expect(result.start).toBeDate(new Date(2021, 1 - 1, 1, 12));
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
testSingleCase(chrono.ru, "в янв", new Date(2020, 11 - 1, 22), (result) => {
|
|
38
|
-
expect(result.index).toBe(0);
|
|
39
|
-
expect(result.text).toBe("в янв");
|
|
40
|
-
expect(result.start).toBeDate(new Date(2021, 1 - 1, 1, 12));
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
testSingleCase(chrono.ru, "май", new Date(2020, 11 - 1, 22), (result) => {
|
|
44
|
-
expect(result.index).toBe(0);
|
|
45
|
-
expect(result.text).toBe("май");
|
|
46
|
-
expect(result.start).toBeDate(new Date(2021, 5 - 1, 1, 12));
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
test("Test - Month expression in context", function () {
|
|
51
|
-
testSingleCase(chrono.ru, "Это было в сентябре 2012 перед новым годом", (result) => {
|
|
52
|
-
expect(result.index).toBe(9);
|
|
53
|
-
expect(result.text).toBe("в сентябре 2012");
|
|
54
|
-
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test("Test - year 90's parsing", () => {
|
|
59
|
-
testSingleCase(chrono.ru, "авг 96", new Date(2012, 7, 10), (result) => {
|
|
60
|
-
expect(result.index).toBe(0);
|
|
61
|
-
expect(result.text).toBe("авг 96");
|
|
62
|
-
expect(result.start).toBeDate(new Date(1996, 8 - 1, 1, 12));
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
testSingleCase(chrono.ru, "96 авг 96", new Date(2012, 7, 10), (result) => {
|
|
66
|
-
expect(result.index).toBe(3);
|
|
67
|
-
expect(result.text).toBe("авг 96");
|
|
68
|
-
expect(result.start).toBeDate(new Date(1996, 8 - 1, 1, 12));
|
|
69
|
-
});
|
|
70
|
-
});
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src";
|
|
2
|
-
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
test("Test - Single expression", () => {
|
|
5
|
-
testSingleCase(chrono.ru, "10.08.2012", new Date(2012, 7, 10), (result) => {
|
|
6
|
-
expect(result.index).toBe(0);
|
|
7
|
-
expect(result.text).toBe("10.08.2012");
|
|
8
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
testSingleCase(chrono.ru, "10 августа 2012", new Date(2012, 7, 10), (result) => {
|
|
12
|
-
expect(result.index).toBe(0);
|
|
13
|
-
expect(result.text).toBe("10 августа 2012");
|
|
14
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
testSingleCase(chrono.ru, "третье фев 82", new Date(2012, 7, 10), (result) => {
|
|
18
|
-
expect(result.index).toBe(0);
|
|
19
|
-
expect(result.text).toBe("третье фев 82");
|
|
20
|
-
expect(result.start).toBeDate(new Date(1982, 2 - 1, 3, 12));
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
testSingleCase(chrono.ru, "Дедлайн 10 августа", new Date(2012, 7, 10), (result) => {
|
|
24
|
-
expect(result.index).toBe(8);
|
|
25
|
-
expect(result.text).toBe("10 августа");
|
|
26
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
testSingleCase(chrono.ru, "Дедлайн Четверг, 10 января", new Date(2012, 7, 10), (result) => {
|
|
30
|
-
expect(result.index).toBe(8);
|
|
31
|
-
expect(result.text).toBe("Четверг, 10 января");
|
|
32
|
-
expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test("Test - Single expression with separators", () => {
|
|
37
|
-
testSingleCase(chrono.ru, "10-августа 2012", new Date(2012, 7, 8), (result, text) => {
|
|
38
|
-
expect(result.text).toBe(text);
|
|
39
|
-
expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
testSingleCase(chrono.ru, "10-августа-2012", new Date(2012, 7, 8), (result, text) => {
|
|
43
|
-
expect(result.text).toBe(text);
|
|
44
|
-
expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
testSingleCase(chrono.ru, "10/августа 2012", new Date(2012, 7, 8), (result, text) => {
|
|
48
|
-
expect(result.text).toBe(text);
|
|
49
|
-
expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
testSingleCase(chrono.ru, "10/августа/2012", new Date(2012, 7, 8), (result, text) => {
|
|
53
|
-
expect(result.text).toBe(text);
|
|
54
|
-
expect(result).toBeDate(new Date(2012, 8 - 1, 10, 12, 0));
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test("Test - Range expression", () => {
|
|
59
|
-
testSingleCase(chrono.ru, "10 - 22 августа 2012", new Date(2012, 7, 10), (result) => {
|
|
60
|
-
expect(result.index).toBe(0);
|
|
61
|
-
expect(result.text).toBe("10 - 22 августа 2012");
|
|
62
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
63
|
-
expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
testSingleCase(chrono.ru, "с 10 по 22 августа 2012", new Date(2012, 7, 10), (result) => {
|
|
67
|
-
expect(result.index).toBe(0);
|
|
68
|
-
expect(result.text).toBe("с 10 по 22 августа 2012");
|
|
69
|
-
|
|
70
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
71
|
-
expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
testSingleCase(chrono.ru, "10 августа - 12 сентября", new Date(2012, 7, 10), (result) => {
|
|
75
|
-
expect(result.index).toBe(0);
|
|
76
|
-
expect(result.text).toBe("10 августа - 12 сентября");
|
|
77
|
-
|
|
78
|
-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
79
|
-
expect(result.end).toBeDate(new Date(2012, 9 - 1, 12, 12));
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
testSingleCase(chrono.ru, "10 августа - 12 сентября 2013", new Date(2012, 7, 10), (result) => {
|
|
83
|
-
expect(result.index).toBe(0);
|
|
84
|
-
expect(result.text).toBe("10 августа - 12 сентября 2013");
|
|
85
|
-
|
|
86
|
-
expect(result.start).toBeDate(new Date(2013, 8 - 1, 10, 12));
|
|
87
|
-
expect(result.end).toBeDate(new Date(2013, 9 - 1, 12, 12));
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
test("Test - Combined expression", () => {
|
|
92
|
-
testSingleCase(chrono.ru, "5 мая 12:00", new Date(2012, 7, 10), (result) => {
|
|
93
|
-
expect(result.index).toBe(0);
|
|
94
|
-
expect(result.text).toBe("5 мая 12:00");
|
|
95
|
-
expect(result.start).toBeDate(new Date(2012, 5 - 1, 5, 12, 0));
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test("Test - Ordinal Words", () => {
|
|
100
|
-
testSingleCase(chrono.ru, "двадцать пятое мая", new Date(2012, 1, 10), (result) => {
|
|
101
|
-
expect(result.index).toBe(0);
|
|
102
|
-
expect(result.text).toBe("двадцать пятое мая");
|
|
103
|
-
expect(result.start).toBeDate(new Date(2012, 5 - 1, 25, 12, 0));
|
|
104
|
-
});
|
|
105
|
-
testSingleCase(chrono.ru, "двадцать пятое мая 2020 года", new Date(2012, 1, 10), (result) => {
|
|
106
|
-
expect(result.index).toBe(0);
|
|
107
|
-
expect(result.text).toBe("двадцать пятое мая 2020 года");
|
|
108
|
-
expect(result.start).toBeDate(new Date(2020, 5 - 1, 25, 12, 0));
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
test("Test - little endian date followed by time", () => {
|
|
113
|
-
testSingleCase(chrono.ru, "24го октября, 9:00", new Date(2017, 7 - 1, 7, 15), (result) => {
|
|
114
|
-
expect(result.index).toBe(0);
|
|
115
|
-
expect(result.text).toBe("24го октября, 9:00");
|
|
116
|
-
expect(result.start).toBeDate(new Date(2017, 10 - 1, 24, 9));
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
test("Test - year 90's parsing", () => {
|
|
121
|
-
testSingleCase(chrono.ru, "03 авг 96", new Date(2012, 7, 10), (result) => {
|
|
122
|
-
expect(result.index).toBe(0);
|
|
123
|
-
expect(result.text).toBe("03 авг 96");
|
|
124
|
-
expect(result.start).toBeDate(new Date(1996, 8 - 1, 3, 12));
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
test("Test - Forward Option", () => {
|
|
129
|
-
testSingleCase(chrono.ru.casual, "22-23 фев в 7", new Date(2016, 3 - 1, 15), { forwardDate: true }, (result) => {
|
|
130
|
-
expect(result.index).toBe(0);
|
|
131
|
-
expect(result.text).toBe("22-23 фев в 7");
|
|
132
|
-
expect(result.start).toBeDate(new Date(2017, 2 - 1, 22, 7));
|
|
133
|
-
expect(result.end).toBeDate(new Date(2017, 2 - 1, 23, 7));
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
test("Test - Impossible Dates (Strict Mode)", function () {
|
|
138
|
-
testUnexpectedResult(chrono.ru.strict, "32 августа 2014", new Date(2012, 7, 10));
|
|
139
|
-
|
|
140
|
-
testUnexpectedResult(chrono.ru.strict, "29 февраля 2014", new Date(2012, 7, 10));
|
|
141
|
-
|
|
142
|
-
testUnexpectedResult(chrono.ru.strict, "32 августа", new Date(2012, 7, 10));
|
|
143
|
-
|
|
144
|
-
testUnexpectedResult(chrono.ru.strict, "29 февраля", new Date(2013, 7, 10));
|
|
145
|
-
});
|