HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/rest/node_modules/merge-defaults/test/dont-merge-arrays.test.js
var assert = require('assert');
var _ = require('@sailshq/lodash');
_.mergeDefaults = require('../');


describe('mergeDefaults', function() {

  describe('dont merge arrays', function() {

    var X, Y, result;

    beforeEach(function() {
      X = {
        z: 1,
        a: 2,
        b: 3,
        d: {},
        e: []
      };
      Y = {
        a: 1,
        b: 22,
        c: 33,
        d: {
          x: 10
        },
        e: ['a','b']
      };
      result = _.mergeDefaults(X, Y);
    });

    it('should return an object', function() {
      assert(typeof result === 'object');
    });
    it('should NOT MERGE ARRAYS in sub-objects', function() {
      assert.deepEqual(result.e, []);
    });
  });

  describe('complex (recursive)', function() {

    var X, Y, result;

    beforeEach(function() {
      X = {
        views: {
          foo: {},
          blueprints: {
            someArray: ['z'],
            enabled: true
          }
        },
        connections: {},
        z: 1,
        a: 2,
        b: 3,
        d: {}
      };
      Y = {
        views: {
          locales: ['en', 'es'],

        },
        controllers: {
          foo: {
            bar: 'asdf'
          },
          blueprints: {
            someArray: ['a','b'],
            enabled: false
          }
        },
        connections: {
          mysql: {
            host: 'localhost',
            port: 1835913851
          }
        },
        a: 1,
        b: 22,
        c: 33,
        d: {
          x: 10
        }
      };
      result = _.mergeDefaults(X, Y);
    });

    it('should return an object', function() {
      assert(typeof result === 'object');
    });
    it('should NOT MERGE ARRAYS in sub-objects', function() {
      assert.deepEqual(result.views.blueprints.someArray, ['z']);
    });
  });
});