diff --git a/Userland/Libraries/LibJS/Tests/builtins/Temporal/Now/Now.plainDateTimeISO.js b/Userland/Libraries/LibJS/Tests/builtins/Temporal/Now/Now.plainDateTimeISO.js index 447973ff3a..9fd61584bb 100644 --- a/Userland/Libraries/LibJS/Tests/builtins/Temporal/Now/Now.plainDateTimeISO.js +++ b/Userland/Libraries/LibJS/Tests/builtins/Temporal/Now/Now.plainDateTimeISO.js @@ -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); }); });