diff --git a/lib/modules/manager/npm/post-update/pnpm.spec.ts b/lib/modules/manager/npm/post-update/pnpm.spec.ts index 5089b185d1660f..ed632a38c128dd 100644 --- a/lib/modules/manager/npm/post-update/pnpm.spec.ts +++ b/lib/modules/manager/npm/post-update/pnpm.spec.ts @@ -98,6 +98,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { depType: 'packageManager', depName: 'pnpm', newValue: '6.16.1', + newVersion: '6.16.1', }, ]); expect(fs.readLocalFile).toHaveBeenCalledTimes(1); diff --git a/lib/modules/manager/npm/post-update/pnpm.ts b/lib/modules/manager/npm/post-update/pnpm.ts index 8f0845c7054e70..dccc3a5c922535 100644 --- a/lib/modules/manager/npm/post-update/pnpm.ts +++ b/lib/modules/manager/npm/post-update/pnpm.ts @@ -16,6 +16,15 @@ import type { NpmPackage } from '../extract/types'; import { getNodeToolConstraint } from './node-version'; import type { GenerateLockFileResult, PnpmLockFile } from './types'; +function getPnpmConstraintFromUpgrades(upgrades: Upgrade[]): string | null { + for (const upgrade of upgrades) { + if (upgrade.depName === 'pnpm' && upgrade.newVersion) { + return upgrade.newVersion; + } + } + return null; +} + export async function generateLockFile( lockFileDir: string, env: NodeJS.ProcessEnv, @@ -32,7 +41,9 @@ export async function generateLockFile( const pnpmToolConstraint: ToolConstraint = { toolName: 'pnpm', constraint: - config.constraints?.pnpm ?? (await getPnpmConstraint(lockFileDir)), + getPnpmConstraintFromUpgrades(upgrades) ?? + config.constraints?.pnpm ?? + (await getPnpmConstraint(lockFileDir)), }; const extraEnv: ExtraEnv = {