@netdata/charts
Version:
Netdata frontend SDK and chart utilities
61 lines • 1.5 kB
JavaScript
import deepMerge from ".";
describe("deepMerge", function () {
it("returns objB when objA equals objB", function () {
var obj = {
a: 1
};
expect(deepMerge(obj, obj)).toBe(obj);
});
it("returns objB when objA is null", function () {
var objB = {
a: 1
};
expect(deepMerge(null, objB)).toBe(objB);
});
it("returns objB when objB is null", function () {
var objA = {
a: 1
};
expect(deepMerge(objA, null)).toBeNull();
});
it("returns objB when objA is not an object", function () {
expect(deepMerge("string", {
a: 1
})).toEqual({
a: 1
});
expect(deepMerge(42, {
a: 1
})).toEqual({
a: 1
});
});
it("returns objB when objB is not an object", function () {
expect(deepMerge({
a: 1
}, "string")).toBe("string");
expect(deepMerge({
a: 1
}, 42)).toBe(42);
});
it("detects implementation bug in deepMergeObject", function () {
// This test documents that deepMergeObject doesn't return its result
var objA = {
a: 1,
b: 2
};
var objB = {
b: 3,
c: 4
};
var result = deepMerge(objA, objB);
expect(result).toBeUndefined();
});
it("detects implementation bug in deepMergeArray", function () {
// This test documents current behavior - arrays return original arrA
var arrA = [1, 2, 3];
var arrB = [4, 5];
var result = deepMerge(arrA, arrB);
expect(result).toEqual([1, 2, 3]);
});
});