Explorar o código

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

Linus Groh %!s(int64=4) %!d(string=hai) anos
pai
achega
9ea8aa7ffe

+ 17 - 10
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);
     });
 });