@@ -2,6 +2,7 @@ const { resolve } = require('node:path')
22const t = require ( 'tap' )
33const { setup, createPkg, merge } = require ( './fixtures/setup.js' )
44const crypto = require ( 'node:crypto' )
5+ const { existsSync } = require ( 'node:fs' )
56
67t . test ( 'run from registry - no local packages' , async t => {
78 const { fixtures, package } = createPkg ( { versions : [ '2.0.0' ] } )
@@ -297,3 +298,33 @@ t.test('npx tree triggers manifest fetch when local version does satisfy range u
297298 value : 'packages-2.0.1' ,
298299 } )
299300} )
301+
302+ t . test ( 'override save to true when installing to npx cache' , async t => {
303+ const { fixtures, package } = createPkg ( { versions : [ '2.0.0' ] } )
304+
305+ const hash = crypto . createHash ( 'sha512' )
306+ . update ( '@npmcli/create-index' )
307+ . digest ( 'hex' )
308+ . slice ( 0 , 16 )
309+
310+ const { exec, path, registry, readOutput } = setup ( t , {
311+ testdir : merge ( fixtures , {
312+ global : { } ,
313+ } ) ,
314+ } )
315+
316+ await package ( { registry, path } )
317+
318+ await exec ( {
319+ args : [ '@npmcli/create-index' ] ,
320+ globalPath : resolve ( path , 'global' ) ,
321+ save : false ,
322+ } )
323+
324+ const packageJsonPath = resolve ( path , 'npxCache' , hash , 'package.json' )
325+ t . ok ( existsSync ( packageJsonPath ) , 'package.json should exist at npmCache' )
326+
327+ t . match ( await readOutput ( '@npmcli-create-index' ) , {
328+ value : 'packages-2.0.0' ,
329+ } )
330+ } )
0 commit comments