var test = require('tap').test; var merge = require('..').merge; test('changing type component', function(t) { t.equal(merge('type/id/subtype/index/version', {type:'new_type'}), 'new_type/id/subtype/index/version', 'should return docuri string with type changed'); t.end(); }); test('changing id component', function(t) { t.equal(merge('type/id/subtype/index/version', {id:'new_id'}), 'type/new_id/subtype/index/version', 'should return docuri string with id changed'); t.end(); }); test('changing subtype component', function(t) { t.equal(merge('type/id/subtype/index/version', {subtype:'new_subtype'}), 'type/id/new_subtype/index/version', 'should return docuri string with subtype changed'); t.end(); }); test('changing index component', function(t) { t.equal(merge('type/id/subtype/index/version', {index:'new_index'}), 'type/id/subtype/new_index/version', 'should return docuri string with index changed'); t.end(); }); test('changing version component', function(t) { t.equal(merge('type/id/subtype/index/version', {version:'new_version'}), 'type/id/subtype/index/new_version', 'should return docuri string with version changed'); t.end(); }); test('changing unknown component', function(t) { t.equal(merge('type/id/subtype/index/version', {unknown:'i dont know'}), 'type/id/subtype/index/version', 'should return unchanged docuri'); t.end(); }); test('missing second argument', function(t) { t.equal(merge('type/id/subtype/index/version'), 'type/id/subtype/index/version', 'should return unchanged docuri string'); t.end(); }); test('changing type component using object', function(t) { t.equal(merge({ type: 'type', id: 'id', subtype: 'subtype', index: 'index', version: 'version' }, {type:'new_type'}), 'new_type/id/subtype/index/version', 'should return docuri string with type changed'); t.end(); }); test('removing component with undefined', function(t) { t.equal(merge('type/id/subtype/index/version', {version:undefined}), 'type/id/subtype/index', 'should return docuri string with version removed'); t.end(); }); test('removing component with null', function(t) { t.equal(merge('type/id/subtype/index/version', {version:null}), 'type/id/subtype/index', 'should return docuri string with version removed'); t.end(); });