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/mutate-leftmost-argument.test.js
var assert = require('assert');
var should = require('should');
var _ = require('@sailshq/lodash');
_.mergeDefaults = require('../');



describe('4-level-deep merge', function() {

  var X = {
    baz: {
      foo: {
        a: 1,
        b: 2,
        bar: {
          a: 1,
          b: 2
        }
      }
    }
  };
  var Y = {
    foon: 82,
    baz: {
      foo: {
        a: 100,
        c: 3,
        bar: {
          a: 10,
          c: 3
        }
      }
    }
  };
  var result = _.mergeDefaults(X, Y);

  it('should retain the values in X (first arg)', function() {
    assert.equal(X.baz.foo.a, 1);
    assert.equal(X.baz.foo.bar.a, 1);
    assert.equal(X.baz.foo.bar.b, 2);
  });

  it('should receive new values from Y (second arg)', function() {
    assert.equal(X.baz.foo.bar.c, 3);
    assert.equal(X.foon, 82);
  });
});