UNPKG

mecano

Version:

Common functions for system deployment.

45 lines (35 loc) 1.43 kB
should = require 'should' misc = if process.env.MECANO_COV then require '../lib-cov/misc' else require '../lib/misc' describe 'merge', -> it 'should enrich 1st object', -> obj1 = { a_key: 'a value', b_key: 'b value'} obj2 = { b_key: 'new b value'} result = misc.merge obj1, obj2 result.should.eql obj1 obj1.b_key.should.eql 'new b value' it 'should create a new object', -> obj1 = { a_key: 'a value', b_key: 'b value'} obj2 = { b_key: 'new b value'} result = misc.merge {}, obj1, obj2 result.b_key.should.eql 'new b value' it 'should overwrite arrays', -> obj1 = { a_key: 'a value', b_key: ['b value']} obj2 = { b_key: ['new b value']} misc.merge obj1, obj2 obj1.b_key.should.eql ['new b value'] it 'should give priority to the last objects', -> obj1 = { b_key: 'b value'} obj2 = { a_key: 'a value', b_key: 'new b value'} misc.merge true, obj1, obj2 obj1.a_key.should.eql 'a value' obj1.b_key.should.eql 'b value' it 'should avoid infinite loop', -> obj1 = { a_key: { b_key : 'b value' } } obj2 = obj1 misc.merge true, obj1, obj2 obj1.a_key.b_key.should.eql 'b value' it 'should overwrite regexp value', -> obj1 = { reg_key: /.*/mg, a_key: { regkey_key : /.*/ } } obj2 = { a_key: { regkey_key : /^.*$/ } } res = misc.merge {}, obj1, obj2 res.should.eql { reg_key: /.*/mg, a_key: { regkey_key : /^.*$/ } }