1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:37:35 +00:00

LibJS: Implement Temporal.Instant.prototype.epochMilliseconds

This commit is contained in:
Linus Groh 2021-07-08 21:56:03 +01:00
parent 5010e01223
commit b157ab3f12
4 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,33 @@
describe("correct behavior", () => {
test("basic functionality", () => {
expect(new Temporal.Instant(0n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(1n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(999_999n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(1_000_000n).epochMilliseconds).toBe(1);
expect(new Temporal.Instant(1_500_000n).epochMilliseconds).toBe(1);
expect(new Temporal.Instant(1_999_999n).epochMilliseconds).toBe(1);
expect(new Temporal.Instant(2_000_000n).epochMilliseconds).toBe(2);
expect(new Temporal.Instant(8_640_000_000_000_000_000_000n).epochMilliseconds).toBe(
8_640_000_000_000_000
);
expect(new Temporal.Instant(-0n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(-1n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(-999_999n).epochMilliseconds).toBe(0);
expect(new Temporal.Instant(-1_000_000n).epochMilliseconds).toBe(-1);
expect(new Temporal.Instant(-1_500_000n).epochMilliseconds).toBe(-1);
expect(new Temporal.Instant(-1_999_999n).epochMilliseconds).toBe(-1);
expect(new Temporal.Instant(-2_000_000n).epochMilliseconds).toBe(-2);
expect(new Temporal.Instant(-8_640_000_000_000_000_000_000n).epochMilliseconds).toBe(
-8_640_000_000_000_000
);
});
});
test("errors", () => {
test("this value must be a Temporal.Instant object", () => {
expect(() => {
Reflect.get(Temporal.Instant.prototype, "epochMilliseconds", "foo");
}).toThrowWithMessage(TypeError, "Not a Temporal.Instant");
});
});