rx-player
Version:
Canal+ HTML5 Video Player
49 lines (43 loc) • 1.32 kB
text/typescript
import { describe, it, expect } from "vitest";
import deepMerge from "../deep_merge";
describe("utils - deep_merge", () => {
it("should return the first argument if no other arguments", () => {
const obj1 = { a: 1 };
expect(deepMerge(obj1)).toStrictEqual(obj1);
});
it("should concat if no common key is found", () => {
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const result = { a: 1, b: 2 };
expect(deepMerge(obj1, obj2)).toStrictEqual(result);
});
it("should override the 1st object with the second", () => {
const obj1 = { a: 1 };
const obj2 = { a: 2 };
const result = { a: 2 };
expect(deepMerge(obj1, obj2)).toStrictEqual(result);
});
it("should return a deeply merged object", () => {
const obj1 = { a: { b: 1 } };
const obj2 = { a: { c: 2 } };
const result = { a: { b: 1, c: 2 } };
expect(deepMerge(obj1, obj2)).toStrictEqual(result);
});
it("should be able to merge multiple objects", () => {
const obj1 = { a: { b: 1 }, d: { e: 1 } };
const obj2 = { a: { c: 2 } };
const obj3 = { a: { f: 3 }, d: { g: 2 } };
const result = {
a: {
b: 1,
c: 2,
f: 3,
},
d: {
e: 1,
g: 2,
},
};
expect(deepMerge(obj1, obj2, obj3)).toStrictEqual(result);
});
});