import test from "node:test"; import assert from "node:assert/strict"; import { normalizeDateArg } from "./dateArg"; test("normalizeDateArg: YYYYMMDD passes through", () => { assert.equal(normalizeDateArg("20241026"), "20241026"); }); test("normalizeDateArg: dashed, slashed, dotted and ISO timestamps normalise", () => { assert.equal(normalizeDateArg("2024-10-26"), "20241026"); assert.equal(normalizeDateArg(" 2024/10/26 "), "20241026"); assert.equal(normalizeDateArg("2024.10.26"), "20241026"); assert.equal(normalizeDateArg("2024-10-26T00:00:00Z"), "20241026"); assert.equal(normalizeDateArg("2024-10-26T12:30:00+02:00"), "20241026"); }); test("normalizeDateArg: absent or blank is no bound", () => { assert.equal(normalizeDateArg(undefined), undefined); assert.equal(normalizeDateArg(null), undefined); assert.equal(normalizeDateArg(" "), undefined); }); test("normalizeDateArg: anything else is refused, never read as no bound", () => { for (const bad of ["2024", "202410", "2024-1-5", "Oct 26 2024", "26/10/2024", "20241332", "20240230", 20241026, "yesterday"]) { assert.equal(normalizeDateArg(bad), null, String(bad)); } });