@@ -402,6 +402,75 @@ describe('npmAdapter', () => {
402
402
expect ( resultJSON . dependencies [ 'ember-cli-babel' ] ) . to . equal ( '6.0.0' ) ;
403
403
} ) ;
404
404
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
+
405
474
describe ( 'ember property' , ( ) => {
406
475
it ( 'adds the ember property to project package.json' , ( ) => {
407
476
let npmAdapter = new NpmAdapter ( {
0 commit comments