From c894224c1838d67f74332fade70720833f199a3b Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Fri, 15 May 2026 00:44:17 +0000 Subject: [PATCH] [Refactor] Fix incorrect string formatting in addNPMDependencies Change `[dependenciesWithVersion].join(' ')` to `dependenciesWithVersion.join(' ')` in `addNPMDependencies` to ensure correct space-separation of dependencies in the output message. --- .../public/node/node-package-manager.test.ts | 24 +++++++++++++++++++ .../src/public/node/node-package-manager.ts | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/cli-kit/src/public/node/node-package-manager.test.ts b/packages/cli-kit/src/public/node/node-package-manager.test.ts index c47933d0f13..2e5221a75a9 100644 --- a/packages/cli-kit/src/public/node/node-package-manager.test.ts +++ b/packages/cli-kit/src/public/node/node-package-manager.test.ts @@ -1156,6 +1156,30 @@ describe('addNPMDependencies', () => { }) }) + test('writes a space-separated install message to stdout', async () => { + await inTemporaryDirectory(async (tmpDir) => { + // Given + const stdout = {write: vi.fn()} + + // When + await addNPMDependencies( + [ + {name: 'first', version: '0.0.1'}, + {name: 'second', version: '0.0.2'}, + ], + { + type: 'prod', + packageManager: 'npm', + directory: tmpDir, + stdout: stdout as any, + }, + ) + + // Then + expect(stdout.write).toHaveBeenCalledWith('Installing first@0.0.1 second@0.0.2 with npm') + }) + }) + test('when the package manager is unknown an error is thrown', async () => { await inTemporaryDirectory(async (tmpDir) => { // Given diff --git a/packages/cli-kit/src/public/node/node-package-manager.ts b/packages/cli-kit/src/public/node/node-package-manager.ts index 7d0899500a6..c2335b46d9d 100644 --- a/packages/cli-kit/src/public/node/node-package-manager.ts +++ b/packages/cli-kit/src/public/node/node-package-manager.ts @@ -544,7 +544,7 @@ export async function addNPMDependencies( const dependenciesWithVersion = dependencies.map((dep) => { return dep.version ? `${dep.name}@${dep.version}` : dep.name }) - options.stdout?.write(`Installing ${[dependenciesWithVersion].join(' ')} with ${options.packageManager}`) + options.stdout?.write(`Installing ${dependenciesWithVersion.join(' ')} with ${options.packageManager}`) switch (options.packageManager) { case 'npm': // npm isn't too smart when resolving the dependency tree. For example, admin ui extensions include react as