diff --git a/package-lock.json b/package-lock.json index 40aea9fb..0929913f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "prettier": "^3.5.3", "rimraf": "^6.0.1", "run-script-os": "^1.1.6", - "ts-jest": "^29.3.4", + "ts-jest": "^29.4.4", "tsc-esm-fix": "^3.1.2", "typedoc": "^0.28.4", "typescript": "~5.8.3" @@ -5825,9 +5825,9 @@ } }, "node_modules/ts-jest": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.1.tgz", - "integrity": "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw==", + "version": "29.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", + "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 19b068d6..9164aa70 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "prettier": "^3.5.3", "rimraf": "^6.0.1", "run-script-os": "^1.1.6", - "ts-jest": "^29.3.4", + "ts-jest": "^29.4.4", "tsc-esm-fix": "^3.1.2", "typedoc": "^0.28.4", "typescript": "~5.8.3" diff --git a/test/it/it_month_name_middle_endian.test.ts b/test/it/it_month_name_middle_endian.test.ts new file mode 100644 index 00000000..216c3230 --- /dev/null +++ b/test/it/it_month_name_middle_endian.test.ts @@ -0,0 +1,39 @@ +import * as chrono from "../../src"; +import { testSingleCase } from "../test_util"; + +test("Test - Single Expression", () => { + testSingleCase(chrono.it, "Ci vediamo ad Agosto 2017.", (result) => { + expect(result.start).not.toBeNull(); + expect(result.start.get("year")).toBe(2017); + expect(result.start.get("month")).toBe(8); + expect(result.start.get("day")).toBe(1); + + expect(result.index).toBe(14); + expect(result.text).toBe("Agosto 2017"); + + expect(result.start).toBeDate(new Date(2017, 8 - 1, 1, 12)); + }); + + testSingleCase(chrono.it, "Agosto 10, 2012", new Date(2012, 7, 10), (result) => { + expect(result.start).not.toBeNull(); + expect(result.start.get("year")).toBe(2012); + expect(result.start.get("month")).toBe(8); + expect(result.start.get("day")).toBe(10); + + expect(result.index).toBe(0); + expect(result.text).toBe("Agosto 10, 2012"); + + expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12)); + }); + + testSingleCase(chrono.it, "La scadenza è Agosto 10", new Date(2012, 7, 10), (result) => { + expect(result.start).not.toBeNull(); + expect(result.start.get("year")).toBe(2012); + expect(result.start.get("month")).toBe(8); + expect(result.start.get("day")).toBe(10); + + expect(result.text).toBe("Agosto 10"); + + expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12)); + }); +}); diff --git a/test/it/it_year_month_day.test.ts b/test/it/it_year_month_day.test.ts new file mode 100644 index 00000000..7ec485ba --- /dev/null +++ b/test/it/it_year_month_day.test.ts @@ -0,0 +1,41 @@ +import { testSingleCase, testUnexpectedResult } from "../test_util"; +import * as chrono from "../../src"; + +test("Test - Single Expression (YYYY.MM.DD)", function () { + testSingleCase(chrono.it, "2012.08.10", new Date(2012, 7, 10), (result) => { + expect(result.start).not.toBeNull(); + expect(result.start.get("year")).toBe(2012); + expect(result.start.get("month")).toBe(8); + expect(result.start.get("day")).toBe(10); + + expect(result.index).toBe(0); + expect(result.text).toBe("2012.08.10"); + + expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12)); + }); + + testSingleCase(chrono.it, "La scadenza è 2012.08.10", new Date(2012, 7, 10), (result) => { + expect(result.index).toBe(14); + expect(result.text).toBe("2012.08.10"); + + expect(result.start).toBeDate(new Date(2012, 7, 10, 12)); + }); + + testSingleCase(chrono.it.strict, "2014.02.28", (result) => { + expect(result.text).toBe("2014.02.28"); + }); + + testSingleCase(chrono.it.strict, "2014.12.28", (result) => { + expect(result.text).toBe("2014.12.28"); + expect(result).toBeDate(new Date(2014, 12 - 1, 28, 12)); + }); +}); + +test("Test - Not parse unlikely YYYY.MM.DD pattern", function () { + testUnexpectedResult(chrono.it, "2012.80.10", new Date(2012, 7, 10)); +}); + +test("Test - Not parse impossible dates", function () { + testUnexpectedResult(chrono.it, "2014.08.32"); + testUnexpectedResult(chrono.it, "2014.02.30"); +});