From bffedfd38126849ca9a08286b5cfce5d86fd12ff Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Mon, 13 Jul 2026 11:01:49 +0100 Subject: [PATCH 1/2] fix(tests): strip devEngines/packageManager from temp package before pnpm install Recent pnpm 'init' writes a devEngines.packageManager block into the temp package.json, which makes the subsequent 'pnpm install' crash with "Cannot use 'in' operator to search for 'integrity' in undefined". Stripping the block fixes the changeset-based test suites in CI. --- __tests__/test-utils/changeset.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/__tests__/test-utils/changeset.ts b/__tests__/test-utils/changeset.ts index ef113f6..2b5a83c 100644 --- a/__tests__/test-utils/changeset.ts +++ b/__tests__/test-utils/changeset.ts @@ -23,7 +23,15 @@ export function initTestPackage(withChangelogPreset = true) { fs.writeFileSync(changesetConfigPath, JSON.stringify(changesetConfig, null, 2)) } - const testPkgJson: PackageJSON = JSON.parse(fs.readFileSync(path.join(testPkg.path, 'package.json'), 'utf-8')) + const testPkgJson: PackageJSON & { devEngines?: unknown; packageManager?: unknown } = JSON.parse( + fs.readFileSync(path.join(testPkg.path, 'package.json'), 'utf-8') + ) + + // Recent pnpm `init` writes a `devEngines.packageManager` block which makes the + // subsequent `pnpm install` crash with "Cannot use 'in' operator to search for + // 'integrity' in undefined". Strip it so the temp package installs cleanly. + delete testPkgJson.devEngines + delete testPkgJson.packageManager testPkgJson.dependencies = { '@changesets/cli': pkg.devDependencies['@changesets/cli'], From b542ee7fab9813c92dc2dd602e19cfe82bc111f2 Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Mon, 13 Jul 2026 11:06:58 +0100 Subject: [PATCH 2/2] docs: generalize comment on stripping pnpm package-manager metadata --- __tests__/test-utils/changeset.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/__tests__/test-utils/changeset.ts b/__tests__/test-utils/changeset.ts index 2b5a83c..6b1bf11 100644 --- a/__tests__/test-utils/changeset.ts +++ b/__tests__/test-utils/changeset.ts @@ -27,9 +27,10 @@ export function initTestPackage(withChangelogPreset = true) { fs.readFileSync(path.join(testPkg.path, 'package.json'), 'utf-8') ) - // Recent pnpm `init` writes a `devEngines.packageManager` block which makes the - // subsequent `pnpm install` crash with "Cannot use 'in' operator to search for - // 'integrity' in undefined". Strip it so the temp package installs cleanly. + // `pnpm init` may add package-manager metadata (`devEngines` / `packageManager`) + // whose exact shape depends on the pnpm version that generated it. We want this + // temp fixture to install predictably with whatever pnpm runs the tests, so drop + // that metadata and let the ambient package manager resolve dependencies as-is. delete testPkgJson.devEngines delete testPkgJson.packageManager