ladybird/Libraries/LibJS/Tests/functions/function-rest-params.js
2020-07-06 23:40:35 +02:00

47 lines
1.2 KiB
JavaScript

test("rest parameter with no arguments", () => {
function foo(...a) {
expect(a).toBeInstanceOf(Array);
expect(a).toHaveLength(0);
}
foo();
});
test("rest parameter with arguments", () => {
function foo(...a) {
expect(a).toEqual(["foo", 123, undefined, { foo: "bar" }]);
}
foo("foo", 123, undefined, { foo: "bar" });
});
test("rest parameter after normal parameters with no arguments", () => {
function foo(a, b, ...c) {
expect(a).toBe("foo");
expect(b).toBe(123);
expect(c).toEqual([]);
}
foo("foo", 123);
});
test("rest parameter after normal parameters with arguments", () => {
function foo(a, b, ...c) {
expect(a).toBe("foo");
expect(b).toBe(123);
expect(c).toEqual([undefined, { foo: "bar" }]);
}
foo("foo", 123, undefined, { foo: "bar" });
});
test("basic arrow function rest parameters", () => {
let foo = (...a) => {
expect(a).toBeInstanceOf(Array);
expect(a).toHaveLength(0);
};
foo();
foo = (a, b, ...c) => {
expect(a).toBe("foo");
expect(b).toBe(123);
expect(c).toEqual([undefined, { foo: "bar" }]);
};
foo("foo", 123, undefined, { foo: "bar" });
});