1234567891011121314151617181920212223242526272829303132333435363738 |
- test("length is 2", () => {
- expect(Reflect.getOwnPropertyDescriptor).toHaveLength(2);
- });
- describe("errors", () => {
- test("target must be an object", () => {
- [null, undefined, "foo", 123, NaN, Infinity].forEach(value => {
- expect(() => {
- Reflect.getOwnPropertyDescriptor(value);
- }).toThrowWithMessage(TypeError, `${value} is not an object`);
- });
- });
- });
- describe("normal behavior", () => {
- test("get descriptor of undefined object property", () => {
- expect(Reflect.getOwnPropertyDescriptor({})).toBeUndefined();
- expect(Reflect.getOwnPropertyDescriptor({}, "foo")).toBeUndefined();
- });
- test("get descriptor of defined object property", () => {
- var o = { foo: "bar" };
- var d = Reflect.getOwnPropertyDescriptor(o, "foo");
- expect(d.value).toBe("bar");
- expect(d.writable).toBeTrue();
- expect(d.enumerable).toBeTrue();
- expect(d.configurable).toBeTrue();
- });
- test("get descriptor of array length property", () => {
- var a = [];
- d = Reflect.getOwnPropertyDescriptor(a, "length");
- expect(d.value).toBe(0);
- expect(d.writable).toBeTrue();
- expect(d.enumerable).toBeFalse();
- expect(d.configurable).toBeFalse();
- });
- });
|