diff --git a/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap b/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap index 070bcab6d4fe6c68448a39071a712ff8aae2e54a..e107e13d1ff153b1753bd1dc4c94da1ccdb3bc75 100644 --- a/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap +++ b/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap @@ -13,5 +13,6 @@ exports[`modules/manager/npm/utils composeLockFile composes lockfile string out }, \\"requires\\": true, \\"version\\": \\"1.0.0\\" -}" +} +" `; diff --git a/lib/modules/manager/npm/post-update/__snapshots__/npm.spec.ts.snap b/lib/modules/manager/npm/post-update/__snapshots__/npm.spec.ts.snap index 6c274a61ef9f65028e3ef16814c2f46be102d4ec..df3d739b113d73ddac2a86281cee3669d24e5825 100644 --- a/lib/modules/manager/npm/post-update/__snapshots__/npm.spec.ts.snap +++ b/lib/modules/manager/npm/post-update/__snapshots__/npm.spec.ts.snap @@ -176,7 +176,8 @@ exports[`modules/manager/npm/post-update/npm performs lock file updates retainin \\"integrity\\": \\"sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==\\" } } -}" +} +" `; exports[`modules/manager/npm/post-update/npm performs lock file updates retaining the package.json counterparts 2`] = ` diff --git a/lib/modules/manager/npm/utils.spec.ts b/lib/modules/manager/npm/utils.spec.ts index 6b5945592fcf6905bcb573cfa36cfb543cc3f082..c5c7d813368abd51af74910c440e634de5452e85 100644 --- a/lib/modules/manager/npm/utils.spec.ts +++ b/lib/modules/manager/npm/utils.spec.ts @@ -53,5 +53,12 @@ describe('modules/manager/npm/utils', () => { const lockFileComposed = composeLockFile(lockFile, ' '); expect(lockFileComposed).toMatchSnapshot(); }); + + it('adds trailing newline to match npms behaviour and avoid diffs', () => { + const lockFile = loadFixture('lockfile-parsing/package-lock.json'); + const { detectedIndent, lockFileParsed } = parseLockFile(lockFile); + const lockFileComposed = composeLockFile(lockFileParsed, detectedIndent); + expect(lockFileComposed).toBe(lockFile); + }); }); }); diff --git a/lib/modules/manager/npm/utils.ts b/lib/modules/manager/npm/utils.ts index 20057b30d9352ca87d0f287fa2d69d916410d312..55d757d475bc880e1431b60867862f484701436e 100644 --- a/lib/modules/manager/npm/utils.ts +++ b/lib/modules/manager/npm/utils.ts @@ -16,5 +16,5 @@ export function parseLockFile(lockFile: string): ParseLockFileResult { } export function composeLockFile(lockFile: LockFile, indent: string): string { - return JSON.stringify(lockFile, null, indent); + return JSON.stringify(lockFile, null, indent) + '\n'; }