LibJS/Tests: Compare results in Temporal.Now.plainDateTimeISO() test

This commit is contained in:
Linus Groh 2021-07-30 22:11:36 +01:00
parent 2c85f076c8
commit 9ea8aa7ffe
Notes: sideshowbarker 2024-07-18 07:43:21 +09:00

View File

@ -15,17 +15,24 @@ describe("correct behavior", () => {
return 86400000000000;
},
};
const plainDateTimeToEpochSeconds = plainDateTime =>
(plainDateTime.year - 1970) * 31_556_952 +
plainDateTime.month * 2_630_000 +
plainDateTime.day * 86_400 +
plainDateTime.hour * 3_600 +
plainDateTime.minute * 60 +
plainDateTime.second +
plainDateTime.millisecond / 1_000 +
plainDateTime.microsecond / 1_000_000 +
plainDateTime.nanosecond / 1_000_000_000;
const plainDateTime = Temporal.Now.plainDateTimeISO();
const plainDateTimeWithOffset = Temporal.Now.plainDateTimeISO(timeZone);
// Yes, this will fail if a day, month, or year change happens between the above two lines :^)
// FIXME: enable these once the getters are implemented
// expect(plainDateTimeWithOffset.year).toBe(plainDateTime.year);
// expect(plainDateTimeWithOffset.month).toBe(plainDateTime.month);
// expect(plainDateTimeWithOffset.day).toBe(plainDateTime.day + 1);
// expect(plainDateTimeWithOffset.hour).not.toBe(plainDateTime.hour);
// expect(plainDateTimeWithOffset.minute).not.toBe(plainDateTime.minute);
// expect(plainDateTimeWithOffset.second).not.toBe(plainDateTime.second);
// expect(plainDateTimeWithOffset.millisecond).not.toBe(plainDateTime.millisecond);
// microsecond, and nanosecond not checked here as they could easily be the same for both
// Let's hope the duration between the above two lines is less than a second :^)
const differenceSeconds =
plainDateTimeToEpochSeconds(plainDateTimeWithOffset) -
plainDateTimeToEpochSeconds(plainDateTime);
expect(Math.floor(differenceSeconds)).toBe(86400);
});
});