date-fns
Version:
Modern JavaScript date utility library
59 lines (50 loc) • 2 kB
JavaScript
// This is basic DST test for parseISO
import { parseISO } from "../../parseISO.js";
import assert from "./node:assert";
if (process.env.TZ !== "Australia/Sydney")
throw new Error("The test must be run with TZ=Australia/Sydney");
if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || "0") < 10)
throw new Error("The test must be run on Node.js version >= 10");
// Test DST start edge
assert.strictEqual(parseISO("2019-10-06").getDate(), 6); // DST start
assert.strictEqual(parseISO("2019-10-07").getDate(), 7);
assert.strictEqual(
parseISO("2019-10-06T01:00:00").toString(),
"Sun Oct 06 2019 01:00:00 GMT+1000 (Australian Eastern Standard Time)",
);
assert.strictEqual(
parseISO("2019-10-06T02:00:00").toString(),
"Sun Oct 06 2019 03:00:00 GMT+1100 (Australian Eastern Daylight Time)",
);
assert.strictEqual(
parseISO("2019-10-06T05:00:00").toString(),
"Sun Oct 06 2019 05:00:00 GMT+1100 (Australian Eastern Daylight Time)",
);
// Test DST end edge
assert.strictEqual(parseISO("2019-04-06").getDate(), 6);
assert.strictEqual(parseISO("2019-04-07").getDate(), 7); // DST end
assert.strictEqual(
parseISO("2019-04-06T11:00:00").toString(),
"Sat Apr 06 2019 11:00:00 GMT+1100 (Australian Eastern Daylight Time)",
);
assert.strictEqual(
parseISO("2019-04-07T11:00:00").toString(),
"Sun Apr 07 2019 11:00:00 GMT+1000 (Australian Eastern Standard Time)",
);
assert.strictEqual(
parseISO("2019-04-07T00:00:00").toString(),
"Sun Apr 07 2019 00:00:00 GMT+1100 (Australian Eastern Daylight Time)",
);
// test edge cases for months, years
assert.strictEqual(
parseISO("2020-01-01T00:00:00").toString(),
"Wed Jan 01 2020 00:00:00 GMT+1100 (Australian Eastern Daylight Time)",
);
assert.strictEqual(
parseISO("2019-12-31T23:59:59").toString(),
"Tue Dec 31 2019 23:59:59 GMT+1100 (Australian Eastern Daylight Time)",
);
assert.strictEqual(
parseISO("2020-02-29T23:59:59").toString(),
"Sat Feb 29 2020 23:59:59 GMT+1100 (Australian Eastern Daylight Time)",
);