
This patch adds the Duration object itself, its constructor and prototype (currently empty), and three required abstract operations.
35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
describe("errors", () => {
|
|
test("called without new", () => {
|
|
expect(() => {
|
|
Temporal.Duration();
|
|
}).toThrowWithMessage(TypeError, "Temporal.Duration constructor must be called with 'new'");
|
|
});
|
|
|
|
test("cannot mix arguments with different signs", () => {
|
|
expect(() => {
|
|
new Temporal.Duration(-1, 1);
|
|
}).toThrowWithMessage(RangeError, "Invalid duration");
|
|
expect(() => {
|
|
new Temporal.Duration(1, -1);
|
|
}).toThrowWithMessage(RangeError, "Invalid duration");
|
|
});
|
|
|
|
test("cannot pass Infinity", () => {
|
|
expect(() => {
|
|
new Temporal.Duration(Infinity);
|
|
}).toThrowWithMessage(RangeError, "Invalid duration");
|
|
});
|
|
});
|
|
|
|
describe("normal behavior", () => {
|
|
test("length is 0", () => {
|
|
expect(Temporal.Duration).toHaveLength(0);
|
|
});
|
|
|
|
test("basic functionality", () => {
|
|
const duration = new Temporal.Duration();
|
|
expect(typeof duration).toBe("object");
|
|
expect(duration).toBeInstanceOf(Temporal.Duration);
|
|
expect(Object.getPrototypeOf(duration)).toBe(Temporal.Duration.prototype);
|
|
});
|
|
});
|