@radixiot/mango-client
Version:
Mango Automation REST API client
51 lines (42 loc) • 1.66 kB
JavaScript
/*
* Copyright (C) 2023 Radix IoT LLC. All rights reserved.
*/
import { assert } from 'chai';
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const { merge } = require('../src/util');
describe('Utility functions', function () {
it('Performs merge correctly', function () {
const options = Object.freeze({
prop1: 'abc',
prop3: Object.freeze({
nestedProp: 'xyz',
}),
arrayProp: [9],
});
const defaultOptions = Object.freeze({
prop1: '123',
prop2: true,
prop3: Object.freeze({
boolProp: true,
}),
arrayProp: [1, 2, 3],
});
const merged = merge({}, defaultOptions, options);
assert.isNotNull(merged);
assert.isObject(merged);
assert.strictEqual(merged.prop1, options.prop1);
assert.strictEqual(merged.prop2, defaultOptions.prop2);
assert.isNotNull(merged.prop3);
assert.isObject(merged.prop3);
assert.notEqual(merged.prop3, options.prop3);
assert.notEqual(merged.prop3, defaultOptions.prop3);
assert.lengthOf(Object.keys(merged.prop3), 2);
assert.strictEqual(merged.prop3.nestedProp, options.prop3.nestedProp);
assert.strictEqual(merged.prop3.boolProp, defaultOptions.prop3.boolProp);
assert.isArray(merged.arrayProp);
assert.notEqual(merged.arrayProp, options.arrayProp);
assert.lengthOf(merged.arrayProp, options.arrayProp.length);
assert.strictEqual(merged.arrayProp[0], options.arrayProp[0]);
});
});