@@ -18,6 +18,16 @@ t.test('basic', async t => {
18
18
'package.json' : { name : 'promise-all-reject-late' , version : '5.0.0' } ,
19
19
'index.js' : 'module.exports = null' ,
20
20
} ,
21
+ 'exec-test-1.0.0' : {
22
+ 'package.json' : { name : 'exec-test' , version : '1.0.0' , bin : { 'exec-test' : 'run.sh' } } ,
23
+ 'index.js' : 'module.exports = "1.0.0"' ,
24
+ 'run.sh' : 'echo 1.0.0' ,
25
+ } ,
26
+ 'exec-test-1.0.1' : {
27
+ 'package.json' : { name : 'exec-test' , version : '1.0.1' , bin : { 'exec-test' : 'run.sh' } } ,
28
+ 'index.js' : 'module.exports = "1.0.1"' ,
29
+ 'run.sh' : 'echo 1.0.1' ,
30
+ } ,
21
31
} ,
22
32
} ,
23
33
} )
@@ -332,4 +342,44 @@ t.test('basic', async t => {
332
342
t . equal ( err . code , 1 )
333
343
t . matchSnapshot ( err . stderr , 'should throw mismatch deps in lock file error' )
334
344
} )
345
+
346
+ await t . test ( 'npm exec' , async t => {
347
+ if ( process . platform === 'win32' ) {
348
+ t . skip ( )
349
+ return
350
+ }
351
+ // First run finds package
352
+ {
353
+ const packument = registry . packument ( {
354
+ name : 'exec-test' , version : '1.0.0' , bin : { 'exec-test' : 'run.sh' } ,
355
+ } )
356
+ const manifest = registry . manifest ( { name : 'exec-test' , packuments : [ packument ] } )
357
+ await registry . package ( {
358
+ times : 2 ,
359
+ manifest,
360
+ tarballs : {
361
+ '1.0.0' : join ( paths . root , 'packages' , 'exec-test-1.0.0' ) ,
362
+ } ,
363
+ } )
364
+
365
+ const o = await npm ( 'exec' , 'exec-test' )
366
+ t . match ( o . trim ( ) , '1.0.0' )
367
+ }
368
+ // Second run finds newer version
369
+ {
370
+ const packument = registry . packument ( {
371
+ name : 'exec-test' , version : '1.0.1' , bin : { 'exec-test' : 'run.sh' } ,
372
+ } )
373
+ const manifest = registry . manifest ( { name : 'exec-test' , packuments : [ packument ] } )
374
+ await registry . package ( {
375
+ times : 2 ,
376
+ manifest,
377
+ tarballs : {
378
+ '1.0.1' : join ( paths . root , 'packages' , 'exec-test-1.0.1' ) ,
379
+ } ,
380
+ } )
381
+ const o = await npm ( 'exec' , 'exec-test' )
382
+ t . match ( o . trim ( ) , '1.0.1' )
383
+ }
384
+ } )
335
385
} )
0 commit comments