diff --git a/packages/cli/src/services/__tests__/community-packages.service.test.ts b/packages/cli/src/services/__tests__/community-packages.service.test.ts index 857c278bfc..ac17070e55 100644 --- a/packages/cli/src/services/__tests__/community-packages.service.test.ts +++ b/packages/cli/src/services/__tests__/community-packages.service.test.ts @@ -6,7 +6,7 @@ import { InstalledNodesRepository } from '@n8n/db'; import { InstalledPackagesRepository } from '@n8n/db'; import axios from 'axios'; import { exec } from 'child_process'; -import { mkdir as fsMkdir, readFile, writeFile } from 'fs/promises'; +import { mkdir as fsMkdir, readFile, writeFile, rm } from 'fs/promises'; import { mocked } from 'jest-mock'; import { mock } from 'jest-mock-extended'; import type { Logger, InstanceSettings, PackageDirectoryLoader } from 'n8n-core'; @@ -446,37 +446,33 @@ describe('CommunityPackagesService', () => { ); // ASSERT: - expect(exec).toHaveBeenCalledTimes(5); + expect(exec).toHaveBeenCalledTimes(4); + + expect(rm).toHaveBeenCalledWith(testBlockPackageDir, { recursive: true, force: true }); expect(exec).toHaveBeenNthCalledWith( 1, - `rm -rf ${testBlockPackageDir}`, - expect.any(Function), - ); - - expect(exec).toHaveBeenNthCalledWith( - 2, `npm pack ${PACKAGE_NAME}@latest --registry=${testBlockRegistry} --quiet`, { cwd: testBlockDownloadDir }, expect.any(Function), ); expect(exec).toHaveBeenNthCalledWith( - 3, + 2, `tar -xzf ${testBlockTarballName} -C ${testBlockPackageDir} --strip-components=1`, { cwd: testBlockDownloadDir }, expect.any(Function), ); expect(exec).toHaveBeenNthCalledWith( - 4, + 3, `npm install ${testBlockNpmInstallArgs}`, { cwd: testBlockPackageDir }, expect.any(Function), ); expect(exec).toHaveBeenNthCalledWith( - 5, + 4, `rm ${testBlockTarballName}`, { cwd: testBlockDownloadDir }, expect.any(Function), diff --git a/packages/cli/src/services/community-packages.service.ts b/packages/cli/src/services/community-packages.service.ts index b100417068..ad38d936d8 100644 --- a/packages/cli/src/services/community-packages.service.ts +++ b/packages/cli/src/services/community-packages.service.ts @@ -5,7 +5,7 @@ import { InstalledPackagesRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import axios from 'axios'; import { exec } from 'child_process'; -import { mkdir, readFile, writeFile } from 'fs/promises'; +import { mkdir, readFile, writeFile, rm } from 'fs/promises'; import type { PackageDirectoryLoader } from 'n8n-core'; import { InstanceSettings, Logger } from 'n8n-core'; import { UnexpectedError, UserError, type PublicInstalledPackage } from 'n8n-workflow'; @@ -481,6 +481,6 @@ export class CommunityPackagesService { private async deletePackageDirectory(packageName: string) { const packageDirectory = this.resolvePackageDirectory(packageName); - await asyncExec(`rm -rf ${packageDirectory}`); + await rm(packageDirectory, { recursive: true, force: true }); } }