From 394bb29f3f0f286e2249247f5568a8defd2ed679 Mon Sep 17 00:00:00 2001 From: Martin Herndl <martin.herndl@icis.com> Date: Tue, 22 Mar 2022 09:50:46 +0100 Subject: [PATCH] fix(npm): add trailing newline when composing lockfiles (#14753) --- lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap | 3 ++- .../manager/npm/post-update/__snapshots__/npm.spec.ts.snap | 3 ++- lib/modules/manager/npm/utils.spec.ts | 7 +++++++ lib/modules/manager/npm/utils.ts | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap b/lib/modules/manager/npm/__snapshots__/utils.spec.ts.snap index 070bcab6d4..e107e13d1f 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 6c274a61ef..df3d739b11 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 6b5945592f..c5c7d81336 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 20057b30d9..55d757d475 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'; } -- GitLab