diff --git a/lib/modules/manager/npm/post-update/index.spec.ts b/lib/modules/manager/npm/post-update/index.spec.ts index 19b2b2d4f1f6d9..4ac567e6e34101 100644 --- a/lib/modules/manager/npm/post-update/index.spec.ts +++ b/lib/modules/manager/npm/post-update/index.spec.ts @@ -78,6 +78,16 @@ describe('modules/manager/npm/post-update/index', () => { npmLock: 'package-lock.json', rangeStrategy: 'widen', }, + { + depName: 'core-js', + isRemediation: true, + managerData: { + lernaJsonFile: 'lerna.json', + }, + npmLock: 'randomFolder/package-lock.json', + lockFiles: ['randomFolder/package-lock.json'], + rangeStrategy: 'pin', + }, { isLockfileUpdate: true, npmLock: 'package-lock.json', @@ -209,6 +219,19 @@ describe('modules/manager/npm/post-update/index', () => { ]); }); + it('works only on relevant folders', async () => { + git.getFile.mockResolvedValueOnce( + Fixtures.get('update-lockfile-massage-1/package-lock.json') + ); + await expect( + writeExistingFiles(updateConfig, additionalFiles) + ).resolves.toBeUndefined(); + + expect(fs.writeLocalFile).toHaveBeenCalledTimes(2); + expect(fs.deleteLocalFile).not.toHaveBeenCalled(); + expect(git.getFile).toHaveBeenCalledOnce(); + }); + it('has no npm files', async () => { await expect(writeExistingFiles(baseConfig, {})).toResolve(); }); diff --git a/lib/modules/manager/npm/post-update/index.ts b/lib/modules/manager/npm/post-update/index.ts index f1c8636996e904..0f15c4fc41301e 100644 --- a/lib/modules/manager/npm/post-update/index.ts +++ b/lib/modules/manager/npm/post-update/index.ts @@ -180,6 +180,9 @@ export async function writeExistingFiles( const widens: string[] = []; let lockFileChanged = false; for (const upgrade of config.upgrades) { + if (upgrade.lockFiles && !upgrade.lockFiles.includes(npmLock)) { + continue; + } if ( upgrade.rangeStrategy === 'widen' && upgrade.npmLock === npmLock