/** * @filedescription Merge Strategy Tests */ /* global it, describe, beforeEach */ "use strict"; //----------------------------------------------------------------------------- // Requirements //----------------------------------------------------------------------------- const assert = require("chai").assert; const { MergeStrategy } = require("../src/"); //----------------------------------------------------------------------------- // Class //----------------------------------------------------------------------------- describe("MergeStrategy", () => { describe("overwrite()", () => { it("should overwrite the first value with the second when the second is defined", () => { const result = MergeStrategy.overwrite(1, 2); assert.strictEqual(result, 2); }); it("should overwrite the first value with the second when the second is undefined", () => { const result = MergeStrategy.overwrite(1, undefined); assert.strictEqual(result, undefined); }); }); describe("replace()", () => { it("should overwrite the first value with the second when the second is defined", () => { const result = MergeStrategy.replace(1, 2); assert.strictEqual(result, 2); }); it("should return the first value when the second is undefined", () => { const result = MergeStrategy.replace(1, undefined); assert.strictEqual(result, 1); }); }); describe("assign()", () => { it("should merge properties from two objects when called", () => { const object1 = { foo: 1, bar: 3 }; const object2 = { foo: 2 }; const result = MergeStrategy.assign(object1, object2); assert.deepStrictEqual(result, { foo: 2, bar: 3 }); }); }); });