@@ -402,6 +402,75 @@ describe('npmAdapter', () => {
402402 expect ( resultJSON . dependencies [ 'ember-cli-babel' ] ) . to . equal ( '6.0.0' ) ;
403403 } ) ;
404404
405+ describe ( 'overrides' , ( ) => {
406+ it ( 'adds an override if you use a pre-release version for something' , ( ) => {
407+ let npmAdapter = new NpmAdapter ( {
408+ cwd : tmpdir ,
409+ } ) ;
410+ let packageJSON = { dependencies : { ember : '4.1.4' } } ;
411+ let depSet = {
412+ dependencies : { ember : '4.8.0-beta.1' } ,
413+ } ;
414+
415+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
416+
417+ expect ( resultJSON ) . to . deep . equal ( {
418+ dependencies : { ember : '4.8.0-beta.1' } ,
419+ overrides : { ember : '$ember' } ,
420+ } ) ;
421+ } ) ;
422+
423+ it ( 'does not add an override if you use a pre-release version with yarn' , ( ) => {
424+ let npmAdapter = new NpmAdapter ( {
425+ cwd : tmpdir ,
426+ useYarnCommand : true ,
427+ } ) ;
428+ let packageJSON = { dependencies : { ember : '4.1.4' } } ;
429+ let depSet = {
430+ dependencies : { ember : '4.8.0-beta.1' } ,
431+ } ;
432+
433+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
434+
435+ expect ( resultJSON ) . to . deep . equal ( {
436+ dependencies : { ember : '4.8.0-beta.1' } ,
437+ } ) ;
438+ } ) ;
439+
440+ it ( 'adds an override if you specify a version with a link to a .tgz file' , ( ) => {
441+ let npmAdapter = new NpmAdapter ( {
442+ cwd : tmpdir ,
443+ } ) ;
444+ let packageJSON = { dependencies : { ember : '4.1.4' } } ;
445+ let depSet = {
446+ dependencies : { ember : 'https://somesite.com/dependencies/funtime.tgz' } ,
447+ } ;
448+
449+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
450+
451+ expect ( resultJSON ) . to . deep . equal ( {
452+ dependencies : { ember : 'https://somesite.com/dependencies/funtime.tgz' } ,
453+ overrides : { ember : '$ember' } ,
454+ } ) ;
455+ } ) ;
456+
457+ it ( 'does not add an override if you specify any other kind of link' , ( ) => {
458+ let npmAdapter = new NpmAdapter ( {
459+ cwd : tmpdir ,
460+ } ) ;
461+ let packageJSON = { dependencies : { ember : '4.1.4' } } ;
462+ let depSet = {
463+ dependencies : { ember : 'https://github.com/github/super-secret' } ,
464+ } ;
465+
466+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
467+
468+ expect ( resultJSON ) . to . deep . equal ( {
469+ dependencies : { ember : 'https://github.com/github/super-secret' } ,
470+ } ) ;
471+ } ) ;
472+ } ) ;
473+
405474 describe ( 'ember property' , ( ) => {
406475 it ( 'adds the ember property to project package.json' , ( ) => {
407476 let npmAdapter = new NpmAdapter ( {
0 commit comments