You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.9 KiB
66 lines
1.9 KiB
/** |
|
* @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 |
|
}); |
|
}); |
|
|
|
}); |
|
|
|
});
|
|
|