@@ -261,28 +261,86 @@ it(`should prefer devEngines to packageManager`, async () => {
261261 } ) ;
262262} ) ;
263263
264- it ( `should accept range in devEngines only if a specific version is provided in .corepack.env` , async ( ) => {
265- await xfs . mktempPromise ( async cwd => {
266- await xfs . writeJsonPromise ( ppath . join ( cwd , `package.json` as PortablePath ) , {
267- devEngines : {
268- packageManager : {
269- name : `pnpm` ,
270- version : `6.x` ,
264+ describe ( `should accept range in devEngines only if a specific version is provided` , ( ) => {
265+ it ( `either in .corepack.env` , async ( ) => {
266+ await xfs . mktempPromise ( async cwd => {
267+ await xfs . writeJsonPromise ( ppath . join ( cwd , `package.json` as PortablePath ) , {
268+ devEngines : {
269+ packageManager : {
270+ name : `pnpm` ,
271+ version : `6.x` ,
272+ } ,
271273 } ,
272- } ,
274+ } ) ;
275+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
276+ exitCode : 1 ,
277+ stderr : `Invalid package manager specification in package.json (pnpm@6.x); expected a semver version\n` ,
278+ stdout : `` ,
279+ } ) ;
280+
281+ await xfs . writeFilePromise ( ppath . join ( cwd , `.corepack.env` as PortablePath ) ,
282+ `COREPACK_DEV_ENGINES_PNPM=6.6.2+sha224.eb5c0acad3b0f40ecdaa2db9aa5a73134ad256e17e22d1419a2ab073\n` ) ;
283+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
284+ exitCode : 0 ,
285+ stderr : `` ,
286+ stdout : `6.6.2\n` ,
287+ } ) ;
273288 } ) ;
274- await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
275- exitCode : 1 ,
276- stderr : `Invalid package manager specification in package.json (pnpm@6.x); expected a semver version\n` ,
277- stdout : `` ,
289+ } ) ;
290+ it ( `either in env` , async ( ) => {
291+ await xfs . mktempPromise ( async cwd => {
292+ await xfs . writeJsonPromise ( ppath . join ( cwd , `package.json` as PortablePath ) , {
293+ devEngines : {
294+ packageManager : {
295+ name : `pnpm` ,
296+ version : `6.x` ,
297+ } ,
298+ } ,
299+ } ) ;
300+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
301+ exitCode : 1 ,
302+ stderr : `Invalid package manager specification in package.json (pnpm@6.x); expected a semver version\n` ,
303+ stdout : `` ,
304+ } ) ;
305+
306+ process . env . COREPACK_DEV_ENGINES_PNPM = `6.6.2+sha224.eb5c0acad3b0f40ecdaa2db9aa5a73134ad256e17e22d1419a2ab073` ;
307+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
308+ exitCode : 0 ,
309+ stderr : `` ,
310+ stdout : `6.6.2\n` ,
311+ } ) ;
278312 } ) ;
313+ } ) ;
314+ it ( `either in package.json#packageManager` , async ( ) => {
315+ await xfs . mktempPromise ( async cwd => {
316+ await xfs . writeJsonPromise ( ppath . join ( cwd , `package.json` as PortablePath ) , {
317+ devEngines : {
318+ packageManager : {
319+ name : `pnpm` ,
320+ version : `6.x` ,
321+ } ,
322+ } ,
323+ } ) ;
324+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
325+ exitCode : 1 ,
326+ stderr : `Invalid package manager specification in package.json (pnpm@6.x); expected a semver version\n` ,
327+ stdout : `` ,
328+ } ) ;
279329
280- await xfs . writeFilePromise ( ppath . join ( cwd , `.corepack.env` as PortablePath ) ,
281- `COREPACK_DEV_ENGINES_PNPM=6.6.2+sha224.eb5c0acad3b0f40ecdaa2db9aa5a73134ad256e17e22d1419a2ab073\n` ) ;
282- await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
283- exitCode : 0 ,
284- stderr : `` ,
285- stdout : `6.6.2\n` ,
330+ await xfs . writeJsonPromise ( ppath . join ( cwd , `package.json` as PortablePath ) , {
331+ devEngines : {
332+ packageManager : {
333+ name : `pnpm` ,
334+ version : `6.x` ,
335+ } ,
336+ } ,
337+ packageManager : `pnpm@6.6.2+sha224.eb5c0acad3b0f40ecdaa2db9aa5a73134ad256e17e22d1419a2ab073` ,
338+ } ) ;
339+ await expect ( runCli ( cwd , [ `pnpm` , `--version` ] ) ) . resolves . toMatchObject ( {
340+ exitCode : 0 ,
341+ stderr : `` ,
342+ stdout : `6.6.2\n` ,
343+ } ) ;
286344 } ) ;
287345 } ) ;
288346} ) ;
0 commit comments