mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:27:35 +00:00
LibJS: Convert Reflect object tests to new testing framework
This commit is contained in:
parent
fc08222f46
commit
46581773c1
14 changed files with 599 additions and 462 deletions
|
@ -1,39 +1,48 @@
|
|||
load("test-common.js");
|
||||
test("length is 1", () => {
|
||||
expect(Reflect.ownKeys).toHaveLength(1);
|
||||
});
|
||||
|
||||
try {
|
||||
assert(Reflect.ownKeys.length === 1);
|
||||
|
||||
[null, undefined, "foo", 123, NaN, Infinity].forEach(value => {
|
||||
assertThrowsError(() => {
|
||||
Reflect.ownKeys(value);
|
||||
}, {
|
||||
error: TypeError,
|
||||
message: "First argument of Reflect.ownKeys() must be an object"
|
||||
describe("errors", () => {
|
||||
test("target must be an object", () => {
|
||||
[null, undefined, "foo", 123, NaN, Infinity].forEach(value => {
|
||||
expect(() => {
|
||||
Reflect.ownKeys(value);
|
||||
}).toThrowWithMessage(TypeError, "First argument of Reflect.ownKeys() must be an object");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
var objectOwnKeys = Reflect.ownKeys({});
|
||||
assert(objectOwnKeys.length === 0);
|
||||
describe("normal behavior", () => {
|
||||
test("regular empty object has no own keys", () => {
|
||||
var objectOwnKeys = Reflect.ownKeys({});
|
||||
expect(objectOwnKeys instanceof Array).toBeTrue();
|
||||
expect(objectOwnKeys).toHaveLength(0);
|
||||
});
|
||||
|
||||
objectOwnKeys = Reflect.ownKeys({ foo: "bar", bar: "baz", 0: 42 });
|
||||
assert(objectOwnKeys.length === 3);
|
||||
assert(objectOwnKeys[0] === "0");
|
||||
assert(objectOwnKeys[1] === "foo");
|
||||
assert(objectOwnKeys[2] === "bar");
|
||||
test("regular object with some properties has own keys", () => {
|
||||
var objectOwnKeys = Reflect.ownKeys({ foo: "bar", bar: "baz", 0: 42 });
|
||||
expect(objectOwnKeys instanceof Array).toBeTrue();
|
||||
expect(objectOwnKeys).toHaveLength(3);
|
||||
expect(objectOwnKeys[0]).toBe("0");
|
||||
expect(objectOwnKeys[1]).toBe("foo");
|
||||
expect(objectOwnKeys[2]).toBe("bar");
|
||||
});
|
||||
|
||||
var arrayOwnKeys = Reflect.ownKeys([]);
|
||||
assert(arrayOwnKeys.length === 1);
|
||||
assert(arrayOwnKeys[0] === "length");
|
||||
test("empty array has only 'length' own key", () => {
|
||||
var arrayOwnKeys = Reflect.ownKeys([]);
|
||||
expect(arrayOwnKeys instanceof Array).toBeTrue();
|
||||
expect(arrayOwnKeys).toHaveLength(1);
|
||||
expect(arrayOwnKeys[0]).toBe("length");
|
||||
});
|
||||
|
||||
arrayOwnKeys = Reflect.ownKeys(["foo", [], 123, undefined]);
|
||||
assert(arrayOwnKeys.length === 5);
|
||||
assert(arrayOwnKeys[0] === "0");
|
||||
assert(arrayOwnKeys[1] === "1");
|
||||
assert(arrayOwnKeys[2] === "2");
|
||||
assert(arrayOwnKeys[3] === "3");
|
||||
assert(arrayOwnKeys[4] === "length");
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
console.log("FAIL: " + e);
|
||||
}
|
||||
test("array with some values has 'lenght' and indices own keys", () => {
|
||||
var arrayOwnKeys = Reflect.ownKeys(["foo", [], 123, undefined]);
|
||||
expect(arrayOwnKeys instanceof Array).toBeTrue();
|
||||
expect(arrayOwnKeys).toHaveLength(5);
|
||||
expect(arrayOwnKeys[0]).toBe("0");
|
||||
expect(arrayOwnKeys[1]).toBe("1");
|
||||
expect(arrayOwnKeys[2]).toBe("2");
|
||||
expect(arrayOwnKeys[3]).toBe("3");
|
||||
expect(arrayOwnKeys[4]).toBe("length");
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue