Skip to content

Commit

Permalink
New: Support timeunit abbriviation (English)
Browse files Browse the repository at this point in the history
  • Loading branch information
Wanasit Tanakitrungruang committed Dec 25, 2022
1 parent 1a4c2dc commit 8abbd83
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/locales/en/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,11 @@ export const ORDINAL_WORD_DICTIONARY: { [word: string]: number } = {
};

export const TIME_UNIT_DICTIONARY: { [word: string]: OpUnitType | QUnitType } = {
s: "second",
sec: "second",
second: "second",
seconds: "second",
m: "minute",
min: "minute",
mins: "minute",
minute: "minute",
Expand All @@ -147,10 +149,14 @@ export const TIME_UNIT_DICTIONARY: { [word: string]: OpUnitType | QUnitType } =
hrs: "hour",
hour: "hour",
hours: "hour",
d: "d",
day: "d",
days: "d",
w: "w",
week: "week",
weeks: "week",
mo: "month",
mos: "month",
month: "month",
months: "month",
qtr: "quarter",
Expand Down
17 changes: 17 additions & 0 deletions test/en/en_time_units_ago.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,14 @@ test("Test - Nested time ago", function () {
expect(result.start.get("meridiem")).toBe(Meridiem.AM);
});

testSingleCase(chrono, "1d 21 h 25m ago ", new Date(2012, 7, 10, 22, 30), (result) => {
expect(result.text).toBe("1d 21 h 25m ago");
expect(result.start.get("day")).toBe(9);
expect(result.start.get("hour")).toBe(1);
expect(result.start.get("minute")).toBe(5);
expect(result.start.get("meridiem")).toBe(Meridiem.AM);
});

testSingleCase(chrono, "3 min 49 sec ago ", new Date(2012, 7, 10, 22, 30), (result) => {
expect(result.text).toBe("3 min 49 sec ago");
expect(result.start.get("day")).toBe(10);
Expand All @@ -245,6 +253,15 @@ test("Test - Nested time ago", function () {
expect(result.start.get("second")).toBe(11);
expect(result.start.get("meridiem")).toBe(Meridiem.PM);
});

testSingleCase(chrono, "3m 49s ago ", new Date(2012, 7, 10, 22, 30), (result) => {
expect(result.text).toBe("3m 49s ago");
expect(result.start.get("day")).toBe(10);
expect(result.start.get("hour")).toBe(22);
expect(result.start.get("minute")).toBe(26);
expect(result.start.get("second")).toBe(11);
expect(result.start.get("meridiem")).toBe(Meridiem.PM);
});
});

test("Test - Negative cases", function () {
Expand Down
30 changes: 30 additions & 0 deletions test/en/en_time_units_later.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,26 @@ test("Test - Later Expression", function () {

expect(result.start).toBeDate(new Date(2012, 7 - 1, 31, 10, 0));
});

testSingleCase(chrono, "3w later", new Date(2012, 7 - 1, 10, 10, 0), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(7);
expect(result.start.get("day")).toBe(31);

expect(result.index).toBe(0);
expect(result.text).toBe("3w later");
});

testSingleCase(chrono, "3mo later", new Date(2012, 7 - 1, 10, 10, 0), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(10);
expect(result.start.get("day")).toBe(10);

expect(result.index).toBe(0);
expect(result.text).toBe("3mo later");
});
});

test("Test - From now Expression", () => {
Expand Down Expand Up @@ -221,6 +241,16 @@ test("Test - From now Expression", () => {

expect(result.start).toBeDate(new Date(2012, 7, 10, 14, 10));
});

testSingleCase(chrono, "in 1d 2hr 5min", new Date(2012, 7, 10, 12, 40), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("in 1d 2hr 5min");
expect(result.start.get("day")).toBe(11);
expect(result.start.get("hour")).toBe(14);
expect(result.start.get("minute")).toBe(45);

expect(result.start).toBeDate(new Date(2012, 7, 11, 14, 45));
});
});

test("Test - Strict mode", function () {
Expand Down

0 comments on commit 8abbd83

Please sign in to comment.