
Let's just treat missing arguments as undefined and throw with 'target/handler must be object' - this is more JavaScript-y.
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
test("constructs properly", () => {
|
|
expect(() => {
|
|
new Proxy({}, {});
|
|
}).not.toThrow();
|
|
});
|
|
|
|
test("constructor argument count", () => {
|
|
expect(() => {
|
|
new Proxy();
|
|
}).toThrowWithMessage(
|
|
TypeError,
|
|
"Expected target argument of Proxy constructor to be object, got undefined"
|
|
);
|
|
|
|
expect(() => {
|
|
new Proxy({});
|
|
}).toThrowWithMessage(
|
|
TypeError,
|
|
"Expected handler argument of Proxy constructor to be object, got undefined"
|
|
);
|
|
});
|
|
|
|
test("constructor requires objects", () => {
|
|
expect(() => {
|
|
new Proxy(1, {});
|
|
}).toThrowWithMessage(
|
|
TypeError,
|
|
"Expected target argument of Proxy constructor to be object, got 1"
|
|
);
|
|
|
|
expect(() => {
|
|
new Proxy({}, 1);
|
|
}).toThrowWithMessage(
|
|
TypeError,
|
|
"Expected handler argument of Proxy constructor to be object, got 1"
|
|
);
|
|
});
|
|
|
|
test("constructor must be invoked with 'new'", () => {
|
|
expect(() => {
|
|
Proxy({}, {});
|
|
}).toThrowWithMessage(TypeError, "Proxy constructor must be called with 'new'");
|
|
});
|