@@ -18,6 +18,16 @@ t.test('basic', async t => {
1818 'package.json' : { name : 'promise-all-reject-late' , version : '5.0.0' } ,
1919 'index.js' : 'module.exports = null' ,
2020 } ,
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+ } ,
2131 } ,
2232 } ,
2333 } )
@@ -332,4 +342,44 @@ t.test('basic', async t => {
332342 t . equal ( err . code , 1 )
333343 t . matchSnapshot ( err . stderr , 'should throw mismatch deps in lock file error' )
334344 } )
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+ } )
335385} )
0 commit comments