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.
Files changed (211) hide show
  1. package/dist/cjs/locales/de/parsers/DECasualTimeParser.js +7 -0
  2. package/dist/cjs/locales/de/parsers/DECasualTimeParser.js.map +1 -1
  3. package/dist/cjs/locales/en/configuration.js +2 -0
  4. package/dist/cjs/locales/en/configuration.js.map +1 -1
  5. package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
  6. package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
  7. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
  8. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js +31 -0
  9. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
  10. package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js +7 -0
  11. package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
  12. package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js +5 -0
  13. package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
  14. package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
  15. package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
  16. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +5 -0
  17. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  18. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
  19. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  20. package/dist/cjs/locales/zh/hans/index.js +2 -0
  21. package/dist/cjs/locales/zh/hans/index.js.map +1 -1
  22. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
  23. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +80 -0
  24. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
  25. package/dist/cjs/locales/zh/hant/index.js +2 -0
  26. package/dist/cjs/locales/zh/hant/index.js.map +1 -1
  27. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
  28. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +80 -0
  29. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
  30. package/dist/cjs/results.js +15 -9
  31. package/dist/cjs/results.js.map +1 -1
  32. package/dist/esm/locales/de/parsers/DECasualTimeParser.js +7 -0
  33. package/dist/esm/locales/de/parsers/DECasualTimeParser.js.map +1 -1
  34. package/dist/esm/locales/en/configuration.js +2 -0
  35. package/dist/esm/locales/en/configuration.js.map +1 -1
  36. package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
  37. package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
  38. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
  39. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js +28 -0
  40. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
  41. package/dist/esm/locales/fi/parsers/FICasualTimeParser.js +7 -0
  42. package/dist/esm/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
  43. package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js +5 -0
  44. package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
  45. package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
  46. package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
  47. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +5 -0
  48. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  49. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
  50. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  51. package/dist/esm/locales/zh/hans/index.js +2 -0
  52. package/dist/esm/locales/zh/hans/index.js.map +1 -1
  53. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
  54. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +77 -0
  55. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
  56. package/dist/esm/locales/zh/hant/index.js +2 -0
  57. package/dist/esm/locales/zh/hant/index.js.map +1 -1
  58. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
  59. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +77 -0
  60. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
  61. package/dist/esm/results.js +14 -9
  62. package/dist/esm/results.js.map +1 -1
  63. package/package.json +5 -1
  64. package/src/locales/de/parsers/DECasualTimeParser.ts +7 -0
  65. package/src/locales/en/configuration.ts +2 -0
  66. package/src/locales/en/parsers/ENMonthNameLittleEndianParser.ts +1 -1
  67. package/src/locales/en/parsers/ENYearMonthNameParser.ts +38 -0
  68. package/src/locales/fi/parsers/FICasualTimeParser.ts +7 -0
  69. package/src/locales/fr/parsers/FRCasualTimeParser.ts +5 -0
  70. package/src/locales/fr/parsers/FRTimeUnitRelativeFormatParser.ts +2 -1
  71. package/src/locales/it/parsers/ITCasualTimeParser.ts +5 -0
  72. package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +1 -1
  73. package/src/locales/zh/hans/index.ts +2 -0
  74. package/src/locales/zh/hans/parsers/ZHHansAgoFormatParser.ts +87 -0
  75. package/src/locales/zh/hant/index.ts +2 -0
  76. package/src/locales/zh/hant/parsers/ZHHantAgoFormatParser.ts +87 -0
  77. package/src/results.ts +40 -9
  78. package/test/calculation_duration.test.ts +0 -165
  79. package/test/calculation_weekdays.test.ts +0 -133
  80. package/test/de/de_casual.test.ts +0 -322
  81. package/test/de/de_dash.test.ts +0 -32
  82. package/test/de/de_month_name_little_endian.test.ts +0 -273
  83. package/test/de/de_time_exp.test.ts +0 -223
  84. package/test/de/de_time_units_casual_relative.test.ts +0 -120
  85. package/test/de/de_time_units_within.test.ts +0 -119
  86. package/test/de/de_weekday.test.ts +0 -158
  87. package/test/de/de_year.test.ts +0 -147
  88. package/test/debugging.test.ts +0 -17
  89. package/test/en/en.test.ts +0 -191
  90. package/test/en/en_casual.test.ts +0 -425
  91. package/test/en/en_inter_std.test.ts +0 -118
  92. package/test/en/en_merging_relative_dates.test.ts +0 -50
  93. package/test/en/en_month.test.ts +0 -295
  94. package/test/en/en_month_name_little_endian.test.ts +0 -448
  95. package/test/en/en_month_name_middle_endian.test.ts +0 -386
  96. package/test/en/en_performance.test.ts +0 -26
  97. package/test/en/en_relative.test.ts +0 -393
  98. package/test/en/en_slash.test.ts +0 -284
  99. package/test/en/en_time_exp.test.ts +0 -535
  100. package/test/en/en_time_units_ago.test.ts +0 -357
  101. package/test/en/en_time_units_casual_relative.test.ts +0 -186
  102. package/test/en/en_time_units_later.test.ts +0 -361
  103. package/test/en/en_time_units_within.test.ts +0 -417
  104. package/test/en/en_timezone_exp.test.ts +0 -410
  105. package/test/en/en_weekday.test.ts +0 -573
  106. package/test/en/en_year.test.ts +0 -138
  107. package/test/en/en_year_month_day.test.ts +0 -101
  108. package/test/en/negative_cases.test.ts +0 -99
  109. package/test/es/es_casual.test.ts +0 -175
  110. package/test/es/es_month_name_little_endian.test.ts +0 -217
  111. package/test/es/es_slash.test.ts +0 -26
  112. package/test/es/es_time_exp.test.ts +0 -175
  113. package/test/es/es_time_units_within.test.ts +0 -119
  114. package/test/fi/fi_casual.test.ts +0 -85
  115. package/test/fi/fi_casual_time.test.ts +0 -56
  116. package/test/fi/fi_month_name_little_endian.test.ts +0 -50
  117. package/test/fi/fi_time_exp.test.ts +0 -39
  118. package/test/fi/fi_time_units_ago.test.ts +0 -93
  119. package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
  120. package/test/fi/fi_time_units_within.test.ts +0 -74
  121. package/test/fi/fi_weekday.test.ts +0 -90
  122. package/test/fr/fr_casual.test.ts +0 -300
  123. package/test/fr/fr_little_endian.test.ts +0 -320
  124. package/test/fr/fr_slash.test.ts +0 -49
  125. package/test/fr/fr_time_exp.test.ts +0 -588
  126. package/test/fr/fr_time_units_ago.test.ts +0 -103
  127. package/test/fr/fr_time_units_casual_relative.test.ts +0 -108
  128. package/test/fr/fr_time_units_within.test.ts +0 -129
  129. package/test/fr/fr_weekday.test.ts +0 -130
  130. package/test/it/it_casual.test.ts +0 -44
  131. package/test/it/it_month_name_little_endian.test.ts +0 -28
  132. package/test/it/it_month_name_middle_endian.test.ts +0 -39
  133. package/test/it/it_time_exp.test.ts +0 -84
  134. package/test/it/it_weekday.test.ts +0 -37
  135. package/test/it/it_year_month_day.test.ts +0 -41
  136. package/test/ja/ja_casual.test.ts +0 -73
  137. package/test/ja/ja_slash_date_format.test.ts +0 -60
  138. package/test/ja/ja_standard.test.ts +0 -235
  139. package/test/ja/ja_time_exp.test.ts +0 -305
  140. package/test/ja/ja_weekday.test.ts +0 -183
  141. package/test/nl/nl_casual.test.ts +0 -408
  142. package/test/nl/nl_month.test.ts +0 -205
  143. package/test/nl/nl_month_name_little_endian.test.ts +0 -358
  144. package/test/nl/nl_relative.test.ts +0 -242
  145. package/test/nl/nl_slash.test.ts +0 -206
  146. package/test/nl/nl_time_exp.test.ts +0 -79
  147. package/test/nl/nl_time_units_ago.test.ts +0 -243
  148. package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
  149. package/test/nl/nl_time_units_later.test.ts +0 -250
  150. package/test/nl/nl_time_units_within.test.ts +0 -225
  151. package/test/nl/nl_weekday.test.ts +0 -216
  152. package/test/pt/pt_casual.test.ts +0 -175
  153. package/test/pt/pt_month_name_little_endian.test.ts +0 -217
  154. package/test/pt/pt_slash.test.ts +0 -26
  155. package/test/pt/pt_time_exp.test.ts +0 -175
  156. package/test/result.test.ts +0 -283
  157. package/test/ru/ru_casual.test.ts +0 -159
  158. package/test/ru/ru_month.test.ts +0 -70
  159. package/test/ru/ru_month_name_little_endian.test.ts +0 -145
  160. package/test/ru/ru_relative.test.ts +0 -107
  161. package/test/ru/ru_time_exp.test.ts +0 -111
  162. package/test/ru/ru_time_units_ago.test.ts +0 -48
  163. package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
  164. package/test/ru/ru_time_units_within.test.ts +0 -16
  165. package/test/ru/ru_weekday.test.ts +0 -52
  166. package/test/sv/sv_casual.test.ts +0 -87
  167. package/test/sv/sv_month_name_little_endian.test.ts +0 -48
  168. package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
  169. package/test/sv/sv_weekday.test.ts +0 -68
  170. package/test/system.test.ts +0 -247
  171. package/test/system_timezone.test.ts +0 -284
  172. package/test/test_util.ts +0 -135
  173. package/test/uk/uk_casual.test.ts +0 -153
  174. package/test/uk/uk_month.test.ts +0 -70
  175. package/test/uk/uk_month_name_little_endian.test.ts +0 -148
  176. package/test/uk/uk_relative.test.ts +0 -107
  177. package/test/uk/uk_time_exp.test.ts +0 -111
  178. package/test/uk/uk_time_units_ago.test.ts +0 -48
  179. package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
  180. package/test/uk/uk_time_units_within.test.ts +0 -16
  181. package/test/uk/uk_weekday.test.ts +0 -52
  182. package/test/vi/vi_casual.test.ts +0 -84
  183. package/test/vi/vi_casual_time.test.ts +0 -77
  184. package/test/vi/vi_date_range.test.ts +0 -61
  185. package/test/vi/vi_forward_date.test.ts +0 -45
  186. package/test/vi/vi_month_year.test.ts +0 -40
  187. package/test/vi/vi_negative_cases.test.ts +0 -60
  188. package/test/vi/vi_slash.test.ts +0 -36
  189. package/test/vi/vi_standard.test.ts +0 -86
  190. package/test/vi/vi_strict.test.ts +0 -67
  191. package/test/vi/vi_time_exp.test.ts +0 -99
  192. package/test/vi/vi_time_units_ago.test.ts +0 -56
  193. package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
  194. package/test/vi/vi_time_units_later.test.ts +0 -43
  195. package/test/vi/vi_time_units_within.test.ts +0 -24
  196. package/test/vi/vi_weekday.test.ts +0 -77
  197. package/test/vi/vi_year.test.ts +0 -42
  198. package/test/zh/hans/zh_hans_casual.test.ts +0 -242
  199. package/test/zh/hans/zh_hans_date.test.ts +0 -116
  200. package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
  201. package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
  202. package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
  203. package/test/zh/hant/zh_hant_casual.test.ts +0 -260
  204. package/test/zh/hant/zh_hant_date.test.ts +0 -116
  205. package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
  206. package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
  207. package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
  208. package/test/zh/zh.test.ts +0 -36
  209. package/tsconfig.build.esm.json +0 -8
  210. package/tsconfig.build.json +0 -10
  211. package/tsconfig.json +0 -29
@@ -1,417 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
- import { Meridiem } from "../../src";
4
-
5
- test("Test - The normal within expression", () => {
6
- testSingleCase(chrono, "we have to make something in 5 days.", new Date(2012, 7, 10), (result) => {
7
- expect(result.index).toBe(26);
8
- expect(result.text).toBe("in 5 days");
9
- expect(result.tags()).toContain("result/relativeDate");
10
-
11
- expect(result.start).not.toBeNull();
12
- expect(result.start.get("year")).toBe(2012);
13
- expect(result.start.get("month")).toBe(8);
14
- expect(result.start.get("day")).toBe(15);
15
-
16
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
17
- });
18
-
19
- testSingleCase(chrono, "we have to make something in five days.", new Date(2012, 7, 10), (result) => {
20
- expect(result.index).toBe(26);
21
- expect(result.text).toBe("in five days");
22
-
23
- expect(result.start).not.toBeNull();
24
- expect(result.start.get("year")).toBe(2012);
25
- expect(result.start.get("month")).toBe(8);
26
- expect(result.start.get("day")).toBe(15);
27
-
28
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
29
- });
30
-
31
- testSingleCase(chrono, "we have to make something within 10 day", new Date(2012, 7, 10), (result) => {
32
- expect(result.index).toBe(26);
33
- expect(result.text).toBe("within 10 day");
34
-
35
- expect(result.start).not.toBeNull();
36
- expect(result.start.get("year")).toBe(2012);
37
- expect(result.start.get("month")).toBe(8);
38
- expect(result.start.get("day")).toBe(20);
39
-
40
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 20));
41
- });
42
-
43
- testSingleCase(chrono, "in 5 minutes", new Date(2012, 7, 10, 12, 14), (result) => {
44
- expect(result.index).toBe(0);
45
- expect(result.text).toBe("in 5 minutes");
46
-
47
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
48
- });
49
-
50
- testSingleCase(chrono, "wait for 5 minutes", new Date(2012, 7, 10, 12, 14), (result) => {
51
- expect(result.index).toBe(5);
52
- expect(result.text).toBe("for 5 minutes");
53
-
54
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
55
- });
56
-
57
- testSingleCase(chrono, "within 1 hour", new Date(2012, 7, 10, 12, 14), (result) => {
58
- expect(result.index).toBe(0);
59
- expect(result.text).toBe("within 1 hour");
60
-
61
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
62
- });
63
-
64
- testSingleCase(chrono, "In 5 minutes I will go home", new Date(2012, 7, 10, 12, 14), (result) => {
65
- expect(result.index).toBe(0);
66
- expect(result.text).toBe("In 5 minutes");
67
-
68
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
69
- });
70
-
71
- testSingleCase(chrono, "In 5 minutes A car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
72
- expect(result.index).toBe(0);
73
- expect(result.text).toBe("In 5 minutes");
74
-
75
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
76
- });
77
-
78
- testSingleCase(chrono, "In 5 seconds A car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
79
- expect(result.index).toBe(0);
80
- expect(result.text).toBe("In 5 seconds");
81
-
82
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 14, 5));
83
- });
84
-
85
- testSingleCase(chrono, "within half an hour", new Date(2012, 7, 10, 12, 14), (result) => {
86
- expect(result.index).toBe(0);
87
- expect(result.text).toBe("within half an hour");
88
-
89
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 44));
90
- });
91
-
92
- testSingleCase(chrono, "within two weeks", new Date(2012, 7, 10, 12, 14), (result) => {
93
- expect(result.index).toBe(0);
94
- expect(result.text).toBe("within two weeks");
95
-
96
- expect(result.start).toBeDate(new Date(2012, 7, 24, 12, 14));
97
- });
98
-
99
- testSingleCase(chrono, "within a month", new Date(2012, 7, 10, 12, 14), (result) => {
100
- expect(result.index).toBe(0);
101
- expect(result.text).toBe("within a month");
102
-
103
- expect(result.start).toBeDate(new Date(2012, 8, 10, 12, 14));
104
- });
105
-
106
- testSingleCase(chrono, "within a few months", new Date(2012, 6, 10, 12, 14), (result) => {
107
- expect(result.index).toBe(0);
108
- expect(result.text).toBe("within a few months");
109
-
110
- expect(result.start).toBeDate(new Date(2012, 9, 10, 12, 14));
111
- });
112
-
113
- testSingleCase(chrono, "within one year", new Date(2012, 7, 10, 12, 14), (result) => {
114
- expect(result.index).toBe(0);
115
- expect(result.text).toBe("within one year");
116
-
117
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
118
- });
119
-
120
- testSingleCase(chrono, "within one Year", new Date(2012, 7, 10, 12, 14), (result) => {
121
- expect(result.index).toBe(0);
122
- expect(result.text).toBe("within one Year");
123
-
124
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
125
- });
126
-
127
- testSingleCase(chrono, "within One year", new Date(2012, 7, 10, 12, 14), (result) => {
128
- expect(result.index).toBe(0);
129
- expect(result.text).toBe("within One year");
130
-
131
- expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
132
- });
133
-
134
- testSingleCase(chrono, "In 5 Minutes A car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
135
- expect(result.index).toBe(0);
136
- expect(result.text).toBe("In 5 Minutes");
137
-
138
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
139
- });
140
-
141
- testSingleCase(chrono, "In 5 mins a car need to move", new Date(2012, 7, 10, 12, 14), (result) => {
142
- expect(result.index).toBe(0);
143
- expect(result.text).toBe("In 5 mins");
144
-
145
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
146
- });
147
-
148
- testSingleCase(chrono, "in a week", new Date(2016, 10 - 1, 1), (result, text) => {
149
- expect(result.text).toBe(text);
150
- expect(result.start.get("year")).toBe(2016);
151
- expect(result.start.get("month")).toBe(10);
152
- expect(result.start.get("day")).toBe(8);
153
- });
154
-
155
- testSingleCase(chrono, "In around 5 hours", new Date(2016, 10 - 1, 1, 13), (result, text) => {
156
- expect(result.text).toBe(text);
157
- expect(result.start.get("year")).toBe(2016);
158
- expect(result.start.get("month")).toBe(10);
159
- expect(result.start.get("day")).toBe(1);
160
- expect(result.start.get("hour")).toBe(18);
161
- });
162
-
163
- testSingleCase(chrono, "In about ~5 hours", new Date(2016, 10 - 1, 1, 13), (result, text) => {
164
- expect(result.start.get("year")).toBe(2016);
165
- expect(result.start.get("month")).toBe(10);
166
- expect(result.start.get("day")).toBe(1);
167
- expect(result.start.get("hour")).toBe(18);
168
- });
169
-
170
- testSingleCase(chrono, "in 1 month", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
171
- expect(result.text).toBe("in 1 month");
172
- expect(result.start.get("year")).toBe(2016);
173
- expect(result.start.get("month")).toBe(11);
174
- expect(result.start.get("day")).toBe(1);
175
- });
176
- });
177
-
178
- test("Test - The within expression with multiple time units", function () {
179
- testSingleCase(chrono, "set a timer for 5 minutes 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => {
180
- expect(result.index).toBe(12);
181
- expect(result.text).toBe("for 5 minutes 30 seconds");
182
-
183
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30));
184
- });
185
-
186
- testSingleCase(chrono, "set a timer for 5 minutes, 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => {
187
- expect(result.index).toBe(12);
188
- expect(result.text).toBe("for 5 minutes, 30 seconds");
189
-
190
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30));
191
- });
192
-
193
- testSingleCase(chrono, "set a timer for 1 hour, 5 minutes, 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => {
194
- expect(result.index).toBe(12);
195
- expect(result.text).toBe("for 1 hour, 5 minutes, 30 seconds");
196
-
197
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 19, 30));
198
- });
199
-
200
- testSingleCase(chrono, "set a timer for 5 minutes and 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => {
201
- expect(result.index).toBe(12);
202
- expect(result.text).toBe("for 5 minutes and 30 seconds");
203
-
204
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30));
205
- });
206
-
207
- testSingleCase(
208
- chrono,
209
- "set a timer for 1 hour, 5 minutes, and 30 seconds",
210
- new Date(2012, 7, 10, 12, 14),
211
- (result) => {
212
- expect(result.index).toBe(12);
213
- expect(result.text).toBe("for 1 hour, 5 minutes, and 30 seconds");
214
-
215
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 19, 30));
216
- }
217
- );
218
- });
219
-
220
- test("Test - The within expression with certain keywords", () => {
221
- testSingleCase(chrono, "In about 5 hours", new Date(2012, 8 - 1, 10, 12, 49), (result, text) => {
222
- expect(result.text).toBe(text);
223
-
224
- expect(result.start.get("year")).toBe(2012);
225
- expect(result.start.get("month")).toBe(8);
226
- expect(result.start.get("day")).toBe(10);
227
- expect(result.start.get("hour")).toBe(17);
228
- expect(result.start.get("minute")).toBe(49);
229
- });
230
-
231
- testSingleCase(chrono, "within around 3 hours", new Date(2012, 8 - 1, 10, 12, 49), (result, text) => {
232
- expect(result.text).toBe(text);
233
-
234
- expect(result.start.get("year")).toBe(2012);
235
- expect(result.start.get("month")).toBe(8);
236
- expect(result.start.get("day")).toBe(10);
237
- expect(result.start.get("hour")).toBe(15);
238
- expect(result.start.get("minute")).toBe(49);
239
- });
240
-
241
- testSingleCase(chrono, "In several hours", new Date(2012, 8 - 1, 10, 12, 49), (result, text) => {
242
- expect(result.text).toBe(text);
243
-
244
- expect(result.start.get("year")).toBe(2012);
245
- expect(result.start.get("month")).toBe(8);
246
- expect(result.start.get("day")).toBe(10);
247
- expect(result.start.get("hour")).toBe(19);
248
- expect(result.start.get("minute")).toBe(49);
249
- });
250
-
251
- testSingleCase(chrono, "In a couple of days", new Date(2012, 8 - 1, 10, 12, 49), (result, text) => {
252
- expect(result.text).toBe(text);
253
-
254
- expect(result.start.get("year")).toBe(2012);
255
- expect(result.start.get("month")).toBe(8);
256
- expect(result.start.get("day")).toBe(12);
257
- expect(result.start.get("hour")).toBe(12);
258
- expect(result.start.get("minute")).toBe(49);
259
- });
260
- });
261
-
262
- test("Test - Single Expression (Implied)", () => {
263
- testSingleCase(chrono, "within 30 days", new Date(2012, 7, 10, 12, 14), (result) => {
264
- expect(!result.start.isCertain("year")).not.toBeNull();
265
- expect(!result.start.isCertain("month")).not.toBeNull();
266
- expect(!result.start.isCertain("day")).not.toBeNull();
267
- expect(!result.start.isCertain("hour")).not.toBeNull();
268
- expect(!result.start.isCertain("minute")).not.toBeNull();
269
- expect(!result.start.isCertain("second")).not.toBeNull();
270
- });
271
- });
272
-
273
- test("Test - Implied time values", () => {
274
- testSingleCase(chrono, "in 24 hours", new Date(2020, 7 - 1, 10, 12, 14), (result) => {
275
- expect(result.start.get("hour")).toBe(12);
276
- expect(result.start.get("minute")).toBe(14);
277
- expect(result.start.get("day")).toBe(11);
278
- expect(result.start.get("month")).toBe(7);
279
- expect(result.start.get("year")).toBe(2020);
280
- });
281
-
282
- testSingleCase(chrono, "in one day", new Date(2020, 7 - 1, 10, 12, 14), (result) => {
283
- expect(result.start.get("hour")).toBe(12);
284
- expect(result.start.get("minute")).toBe(14);
285
- expect(result.start.get("day")).toBe(11);
286
- expect(result.start.get("month")).toBe(7);
287
- expect(result.start.get("year")).toBe(2020);
288
- });
289
- });
290
-
291
- test("Test - Time units' certainty", () => {
292
- testSingleCase(chrono, "in 2 minute", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
293
- expect(result.text).toBe(text);
294
- expect(result.start.get("year")).toBe(2016);
295
- expect(result.start.get("month")).toBe(10);
296
- expect(result.start.get("day")).toBe(1);
297
- expect(result.start.get("hour")).toBe(14);
298
- expect(result.start.get("minute")).toBe(54);
299
-
300
- expect(result.start.isCertain("year")).toBeTruthy();
301
- expect(result.start.isCertain("month")).toBeTruthy();
302
- expect(result.start.isCertain("day")).toBeTruthy();
303
- expect(result.start.isCertain("hour")).toBeTruthy();
304
- expect(result.start.isCertain("minute")).toBeTruthy();
305
- });
306
-
307
- testSingleCase(chrono, "in 2hour", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
308
- expect(result.text).toBe(text);
309
- expect(result.start.get("year")).toBe(2016);
310
- expect(result.start.get("month")).toBe(10);
311
- expect(result.start.get("day")).toBe(1);
312
- expect(result.start.get("hour")).toBe(16);
313
- expect(result.start.get("minute")).toBe(52);
314
-
315
- expect(result.start.isCertain("year")).toBeTruthy();
316
- expect(result.start.isCertain("month")).toBeTruthy();
317
- expect(result.start.isCertain("day")).toBeTruthy();
318
- expect(result.start.isCertain("hour")).toBeTruthy();
319
- expect(result.start.isCertain("minute")).toBeTruthy();
320
- });
321
-
322
- testSingleCase(chrono, "in a few year", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
323
- expect(result.text).toBe(text);
324
- expect(result.start.get("year")).toBe(2019);
325
- expect(result.start.get("month")).toBe(10);
326
- expect(result.start.get("day")).toBe(1);
327
- expect(result.start.get("hour")).toBe(14);
328
- expect(result.start.get("minute")).toBe(52);
329
-
330
- expect(result.start.isCertain("month")).toBeFalsy();
331
- expect(result.start.isCertain("day")).toBeFalsy();
332
- expect(result.start.isCertain("hour")).toBeFalsy();
333
- expect(result.start.isCertain("minute")).toBeFalsy();
334
- });
335
-
336
- testSingleCase(chrono, "within 12 month", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
337
- expect(result.text).toBe(text);
338
- expect(result.start.get("year")).toBe(2017);
339
- expect(result.start.get("month")).toBe(10);
340
- expect(result.start.get("day")).toBe(1);
341
- expect(result.start.get("hour")).toBe(14);
342
- expect(result.start.get("minute")).toBe(52);
343
-
344
- expect(result.start.isCertain("year")).toBeTruthy();
345
- expect(result.start.isCertain("month")).toBeTruthy();
346
- expect(result.start.isCertain("day")).toBeFalsy();
347
- expect(result.start.isCertain("hour")).toBeFalsy();
348
- expect(result.start.isCertain("minute")).toBeFalsy();
349
- });
350
-
351
- testSingleCase(chrono, "within 3 days", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
352
- expect(result.text).toBe(text);
353
- expect(result.start.get("year")).toBe(2016);
354
- expect(result.start.get("month")).toBe(10);
355
- expect(result.start.get("day")).toBe(4);
356
- expect(result.start.get("hour")).toBe(14);
357
- expect(result.start.get("minute")).toBe(52);
358
-
359
- expect(result.start.isCertain("year")).toBeTruthy();
360
- expect(result.start.isCertain("month")).toBeTruthy();
361
- expect(result.start.isCertain("day")).toBeTruthy();
362
- expect(result.start.isCertain("hour")).toBeFalsy();
363
- expect(result.start.isCertain("minute")).toBeFalsy();
364
- });
365
-
366
- testSingleCase(chrono, "give it 2 months", new Date(2016, 10 - 1, 1, 14, 52), { forwardDate: true }, (result) => {
367
- expect(result.text).toBe("2 months");
368
- expect(result.start.get("year")).toBe(2016);
369
- expect(result.start.get("month")).toBe(12);
370
- expect(result.start.get("day")).toBe(1);
371
- expect(result.start.get("hour")).toBe(14);
372
- expect(result.start.get("minute")).toBe(52);
373
-
374
- expect(result.start.isCertain("year")).toBeTruthy();
375
- expect(result.start.isCertain("month")).toBeTruthy();
376
- expect(result.start.isCertain("day")).toBeFalsy();
377
- expect(result.start.isCertain("hour")).toBeFalsy();
378
- expect(result.start.isCertain("minute")).toBeFalsy();
379
- });
380
- });
381
-
382
- test("Test - Strict mode", () => {
383
- testSingleCase(chrono, "in 2hour", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
384
- expect(result.start.get("hour")).toBe(16);
385
- expect(result.start.get("minute")).toBe(52);
386
- });
387
-
388
- testUnexpectedResult(chrono.strict, "in 15m");
389
- testUnexpectedResult(chrono.strict, "within 5hr");
390
- });
391
-
392
- test("Test - Forward date option", () => {
393
- testSingleCase(chrono, "1 hour", new Date(2012, 7, 10, 12, 14), { forwardDate: true }, (result) => {
394
- expect(result.text).toBe("1 hour");
395
- expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
396
- });
397
-
398
- testSingleCase(chrono, "1 month", new Date(2016, 10 - 1, 1, 14, 52), { forwardDate: true }, (result, text) => {
399
- expect(result.text).toBe("1 month");
400
- expect(result.start.get("year")).toBe(2016);
401
- expect(result.start.get("month")).toBe(11);
402
- expect(result.start.get("day")).toBe(1);
403
- });
404
-
405
- testSingleCase(chrono, "in 1 month", new Date(2016, 10 - 1, 1, 14, 52), { forwardDate: true }, (result, text) => {
406
- expect(result.text).toBe("in 1 month");
407
- expect(result.start.get("year")).toBe(2016);
408
- expect(result.start.get("month")).toBe(11);
409
- expect(result.start.get("day")).toBe(1);
410
- });
411
- });
412
-
413
- test("Test - Negative cases", () => {
414
- testUnexpectedResult(chrono, "in am");
415
- testUnexpectedResult(chrono, "in them");
416
- testUnexpectedResult(chrono, "the second half");
417
- });