67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
/**
|
|
* @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
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
});
|