ladybird/Libraries/LibJS/Tests/builtins/Proxy/Proxy.js

38 lines
941 B
JavaScript
Raw Normal View History

2020-07-03 22:43:08 -07:00
test("constructs properly", () => {
expect(() => {
new Proxy({}, {});
}).not.toThrow();
2020-07-03 22:43:08 -07:00
});
2020-07-03 22:43:08 -07:00
test("constructor argument count", () => {
expect(() => {
new Proxy();
}).toThrowWithMessage(TypeError, "Proxy constructor requires at least two arguments");
expect(() => {
new Proxy({});
}).toThrowWithMessage(TypeError, "Proxy constructor requires at least two arguments");
2020-07-03 22:43:08 -07:00
});
2020-07-03 22:43:08 -07:00
test("constructor requires objects", () => {
expect(() => {
new Proxy(1, {});
}).toThrowWithMessage(
TypeError,
"Expected target argument of Proxy constructor to be object, got 1"
);
2020-07-03 22:43:08 -07:00
expect(() => {
new Proxy({}, 1);
}).toThrowWithMessage(
TypeError,
"Expected handler argument of Proxy constructor to be object, got 1"
);
2020-07-03 22:43:08 -07:00
});
2020-07-03 22:43:08 -07:00
test("constructor must be invoked with 'new'", () => {
expect(() => {
Proxy({}, {});
}).toThrowWithMessage(TypeError, "Proxy must be called with the 'new' operator");
2020-07-03 22:43:08 -07:00
});