ladybird/Libraries/LibJS/Tests/builtins/Object/Object.create.js
Timothy Flynn 019c529c07 Meta: Increase the line length enforced by prettier to 120
This matches our coding style recommendation in CodingStyle.md, and
matches our python formatting.
2025-10-31 19:55:50 -04:00

55 lines
1.5 KiB
JavaScript

test("length is 2", () => {
expect(Object.create).toHaveLength(2);
});
describe("errors", () => {
test("non-object prototype value", () => {
expect(() => Object.create(42)).toThrowWithMessage(TypeError, "Prototype must be an object or null");
});
});
describe("normal behavior", () => {
test("creates object with given prototype", () => {
let o;
o = Object.create(null);
expect(o).toEqual({});
expect(Object.getPrototypeOf(o)).toBe(null);
const p = {};
o = Object.create(p);
expect(o).toEqual({});
expect(Object.getPrototypeOf(o)).toBe(p);
});
test("creates object with properties from propertiesObject, if given", () => {
const o = Object.create(
{},
{
foo: {
writable: true,
configurable: true,
value: "foo",
},
bar: {
enumerable: true,
value: "bar",
},
}
);
expect(Object.getOwnPropertyNames(o)).toEqual(["foo", "bar"]);
expect(Object.getOwnPropertyDescriptor(o, "foo")).toEqual({
value: "foo",
writable: true,
enumerable: false,
configurable: true,
});
expect(Object.getOwnPropertyDescriptor(o, "bar")).toEqual({
value: "bar",
writable: false,
enumerable: true,
configurable: false,
});
});
});