@@ -18,7 +18,7 @@ t.test('private field with init-private false', async (t) => {
1818 config : { yes : 'yes' , 'init-private' : false } ,
1919 } )
2020
21- t . equal ( data . private , undefined , 'private field set to false is undefined' )
21+ t . equal ( data . private , false , 'private field set to false is undefined' )
2222} )
2323
2424t . test ( 'private field without init-private' , async ( t ) => {
@@ -28,3 +28,47 @@ t.test('private field without init-private', async (t) => {
2828
2929 t . equal ( data . private , undefined , 'private not set in by default' )
3030} )
31+
32+ t . test ( 'respects existing private field in package.json' , async ( t ) => {
33+ const { data } = await setup ( t , __filename , {
34+ testdir : {
35+ 'package.json' : JSON . stringify ( {
36+ name : 'existing-package' ,
37+ version : '1.0.0' ,
38+ private : true ,
39+ } ) ,
40+ } ,
41+ config : { yes : 'yes' } ,
42+ } )
43+
44+ t . equal ( data . private , true , 'keeps existing private value from package.json' )
45+ } )
46+
47+ t . test ( 'existing private field takes precedence over config' , async ( t ) => {
48+ const { data } = await setup ( t , __filename , {
49+ testdir : {
50+ 'package.json' : JSON . stringify ( {
51+ name : 'existing-package' ,
52+ version : '1.0.0' ,
53+ private : true ,
54+ } ) ,
55+ } ,
56+ config : { yes : 'yes' , 'init-private' : false } ,
57+ } )
58+
59+ t . equal ( data . private , true , 'existing package.json private field takes precedence over config' )
60+ } )
61+
62+ t . test ( 'adds private from config when existing package has no private field' , async t => {
63+ const { data } = await setup ( t , __filename , {
64+ testdir : {
65+ 'package.json' : JSON . stringify ( {
66+ name : 'existing-package' ,
67+ version : '1.0.0' ,
68+ } ) ,
69+ } ,
70+ config : { yes : 'yes' , 'init-private' : true } ,
71+ } )
72+
73+ t . equal ( data . private , true , 'adds private field from config when not in existing package' )
74+ } )
0 commit comments