@@ -312,6 +312,68 @@ describe('npmAdapter', () => {
312312 expect ( resultJSON . dependencies [ 'ember-cli-babel' ] ) . to . equal ( '6.0.0' ) ;
313313 } ) ;
314314
315+ describe ( 'ember property' , ( ) => {
316+ it ( 'adds the ember property to project package.json' , ( ) => {
317+ let npmAdapter = new NpmAdapter ( {
318+ cwd : tmpdir ,
319+ useYarnCommand : true
320+ } ) ;
321+ let packageJSON = { } ;
322+ let depSet = {
323+ ember : { edition : 'octane' }
324+ } ;
325+
326+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
327+
328+ expect ( resultJSON ) . to . deep . equal ( { ember : { edition : 'octane' } } ) ;
329+ } ) ;
330+
331+ it ( 'merges the ember property to project package.json' , ( ) => {
332+ let npmAdapter = new NpmAdapter ( {
333+ cwd : tmpdir ,
334+ useYarnCommand : true
335+ } ) ;
336+ let packageJSON = { ember : { foo : 'bar' } } ;
337+ let depSet = {
338+ ember : { edition : 'octane' }
339+ } ;
340+
341+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
342+
343+ expect ( resultJSON ) . to . deep . equal ( { ember : { foo : 'bar' , edition : 'octane' } } ) ;
344+ } ) ;
345+
346+ it ( 'overrides existing fields inside the ember property to project package.json' , ( ) => {
347+ let npmAdapter = new NpmAdapter ( {
348+ cwd : tmpdir ,
349+ useYarnCommand : true
350+ } ) ;
351+ let packageJSON = { ember : { edition : 'classic' } } ;
352+ let depSet = {
353+ ember : { edition : 'octane' }
354+ } ;
355+
356+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
357+
358+ expect ( resultJSON ) . to . deep . equal ( { ember : { edition : 'octane' } } ) ;
359+ } ) ;
360+
361+ it ( 'removes any items with a null value' , ( ) => {
362+ let npmAdapter = new NpmAdapter ( {
363+ cwd : tmpdir ,
364+ useYarnCommand : true
365+ } ) ;
366+ let packageJSON = { ember : { edition : 'octane' } } ;
367+ let depSet = {
368+ ember : { edition : null }
369+ } ;
370+
371+ let resultJSON = npmAdapter . _packageJSONForDependencySet ( packageJSON , depSet ) ;
372+
373+ expect ( resultJSON ) . to . deep . equal ( { ember : { } } ) ;
374+ } ) ;
375+ } ) ;
376+
315377 it ( 'adds a resolution for the specified dependency version' , ( ) => {
316378 let npmAdapter = new NpmAdapter ( {
317379 cwd : tmpdir ,
0 commit comments