mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:28:12 +00:00

This commit adds the PlainYearMonth object itself, its constructor and prototype (currently empty), and the CreateTemporalYearMonth and ISOYearMonthWithinLimits abstract operations.
53 lines
2 KiB
JavaScript
53 lines
2 KiB
JavaScript
describe("errors", () => {
|
|
test("called without new", () => {
|
|
expect(() => {
|
|
Temporal.PlainYearMonth();
|
|
}).toThrowWithMessage(
|
|
TypeError,
|
|
"Temporal.PlainYearMonth constructor must be called with 'new'"
|
|
);
|
|
});
|
|
|
|
test("cannot pass Infinity", () => {
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, 0, {}, Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(-Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, -Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, 0, {}, -Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
});
|
|
|
|
test("cannot pass invalid ISO month/day", () => {
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, 0);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
expect(() => {
|
|
new Temporal.PlainYearMonth(0, 1, {}, 0);
|
|
}).toThrowWithMessage(RangeError, "Invalid plain year month");
|
|
});
|
|
});
|
|
|
|
describe("normal behavior", () => {
|
|
test("length is 2", () => {
|
|
expect(Temporal.PlainYearMonth).toHaveLength(2);
|
|
});
|
|
|
|
test("basic functionality", () => {
|
|
const plainYearMonth = new Temporal.PlainYearMonth(2021, 7);
|
|
expect(typeof plainYearMonth).toBe("object");
|
|
expect(plainYearMonth).toBeInstanceOf(Temporal.PlainYearMonth);
|
|
expect(Object.getPrototypeOf(plainYearMonth)).toBe(Temporal.PlainYearMonth.prototype);
|
|
});
|
|
});
|