@@ -138,3 +138,81 @@ t.test('handle getWorkspaces raising an error', async t => {
138
138
{ message : 'oopsie' }
139
139
)
140
140
} )
141
+
142
+ t . test ( 'location detection and audit' , async ( t ) => {
143
+ await t . test ( 'audit false without package.json' , async t => {
144
+ const { npm } = await loadMockNpm ( t , {
145
+ command : 'install' ,
146
+ prefixDir : {
147
+ // no package.json
148
+ 'readme.txt' : 'just a file' ,
149
+ 'other-dir' : { a : 'a' } ,
150
+ } ,
151
+ } )
152
+ t . equal ( npm . config . get ( 'location' ) , 'user' )
153
+ t . equal ( npm . config . get ( 'audit' ) , false )
154
+ } )
155
+
156
+ await t . test ( 'audit true with package.json' , async t => {
157
+ const { npm } = await loadMockNpm ( t , {
158
+ command : 'install' ,
159
+ prefixDir : {
160
+ 'package.json' : '{ "name": "testpkg", "version": "1.0.0" }' ,
161
+ 'readme.txt' : 'just a file' ,
162
+ } ,
163
+ } )
164
+ t . equal ( npm . config . get ( 'location' ) , 'user' )
165
+ t . equal ( npm . config . get ( 'audit' ) , true )
166
+ } )
167
+
168
+ await t . test ( 'audit true without package.json when set' , async t => {
169
+ const { npm } = await loadMockNpm ( t , {
170
+ command : 'install' ,
171
+ prefixDir : {
172
+ // no package.json
173
+ 'readme.txt' : 'just a file' ,
174
+ 'other-dir' : { a : 'a' } ,
175
+ } ,
176
+ config : {
177
+ audit : true ,
178
+ } ,
179
+ } )
180
+ t . equal ( npm . config . get ( 'location' ) , 'user' )
181
+ t . equal ( npm . config . get ( 'audit' ) , true )
182
+ } )
183
+
184
+ await t . test ( 'audit true in root config without package.json' , async t => {
185
+ const { npm } = await loadMockNpm ( t , {
186
+ command : 'install' ,
187
+ prefixDir : {
188
+ // no package.json
189
+ 'readme.txt' : 'just a file' ,
190
+ 'other-dir' : { a : 'a' } ,
191
+ } ,
192
+ // change npmRoot to get it to use a builtin rc file
193
+ otherDirs : { npmrc : 'audit=true' } ,
194
+ npm : ( { other } ) => ( { npmRoot : other } ) ,
195
+ } )
196
+ t . equal ( npm . config . get ( 'location' ) , 'user' )
197
+ t . equal ( npm . config . get ( 'audit' ) , true )
198
+ } )
199
+
200
+ await t . test ( 'test for warning when --global & --audit' , async t => {
201
+ const { npm, logs } = await loadMockNpm ( t , {
202
+ command : 'install' ,
203
+ prefixDir : {
204
+ // no package.json
205
+ 'readme.txt' : 'just a file' ,
206
+ 'other-dir' : { a : 'a' } ,
207
+ } ,
208
+ config : {
209
+ audit : true ,
210
+ global : true ,
211
+ } ,
212
+ } )
213
+ t . equal ( npm . config . get ( 'location' ) , 'user' )
214
+ t . equal ( npm . config . get ( 'audit' ) , true )
215
+ t . equal ( logs . warn [ 0 ] [ 0 ] , 'config' )
216
+ t . equal ( logs . warn [ 0 ] [ 1 ] , 'includes both --global and --audit, which is currently unsupported.' )
217
+ } )
218
+ } )
0 commit comments