123456789101112131415161718192021222324252627282930313233343536373839404142 |
- test("length is 2", () => {
- expect(Object.assign).toHaveLength(2);
- });
- describe("errors", () => {
- test("first argument must coercible to object", () => {
- expect(() => {
- Object.assign(null);
- }).toThrowWithMessage(TypeError, "ToObject on null or undefined");
- expect(() => {
- Object.assign(undefined);
- }).toThrowWithMessage(TypeError, "ToObject on null or undefined");
- });
- });
- describe("normal behavior", () => {
- test("returns first argument coerced to object", () => {
- const o = {};
- expect(Object.assign(o)).toBe(o);
- expect(Object.assign(o, {})).toBe(o);
- expect(Object.assign(42)).toEqual(new Number(42));
- });
- test("alters first argument object if sources are given", () => {
- const o = { foo: 0 };
- expect(Object.assign(o, { foo: 1 })).toBe(o);
- expect(o).toEqual({ foo: 1 });
- });
- test("merges objects", () => {
- const s = Symbol();
- expect(
- Object.assign(
- {},
- { foo: 0, bar: "baz" },
- { [s]: [1, 2, 3] },
- { foo: 1 },
- { [42]: "test" }
- )
- ).toEqual({ foo: 1, bar: "baz", [s]: [1, 2, 3], 42: "test" });
- });
- });
|