From 430c28812c3129e169bdd156baec967aea9869e3 Mon Sep 17 00:00:00 2001 From: Willie Ruemmele Date: Mon, 13 Oct 2025 11:09:31 -0600 Subject: [PATCH 1/3] test: add an assertion for SF_MDAPI_TEMP_DIR fix --- test/commands/deploy/metadata.nut.ts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/commands/deploy/metadata.nut.ts b/test/commands/deploy/metadata.nut.ts index 4760d0a1c..2508e79b5 100644 --- a/test/commands/deploy/metadata.nut.ts +++ b/test/commands/deploy/metadata.nut.ts @@ -6,7 +6,26 @@ */ import { fileURLToPath } from 'node:url'; +import { join } from 'node:path'; +import { readdir } from 'node:fs/promises'; import { SourceTestkit } from '@salesforce/source-testkit'; +import { expect } from 'chai'; + +async function getAllFilePaths(dir: string): Promise { + let filePaths: string[] = []; + const entries = await readdir(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = join(dir, entry.name); + if (entry.isFile()) { + filePaths.push(fullPath); + } else if (entry.isDirectory()) { + // eslint-disable-next-line no-await-in-loop + filePaths = filePaths.concat(await getAllFilePaths(fullPath)); + } + } + return filePaths; +} describe('deploy metadata NUTs', () => { let testkit: SourceTestkit; @@ -31,9 +50,19 @@ describe('deploy metadata NUTs', () => { describe('--metadata flag', () => { it('should deploy ApexClass', async () => { + process.env.SF_MDAPI_TEMP_DIR = 'myTempDirectory'; await testkit.modifyLocalGlobs(['force-app/main/default/classes/*.cls'], '// comment'); await testkit.deploy({ args: '--metadata ApexClass' }); await testkit.expect.filesToBeDeployed(['force-app/main/default/classes/*']); + + // no illegal file paths should be generated when using SF_MDAPI_TEMP_DIR + expect( + (await getAllFilePaths(join(testkit.projectDir, process.env.SF_MDAPI_TEMP_DIR))).every( + (path) => !/[<>:"/\\|?*]/.test(path) + ) + ).to.be.true; + + delete process.env.SF_MDAPI_TEMP_DIR; }); it('should deploy named ApexClass', async () => { From 7a42c05e6c1613f18e0b49d905a3b317f4a51939 Mon Sep 17 00:00:00 2001 From: Cristian Dominguez Date: Tue, 21 Oct 2025 11:56:09 -0300 Subject: [PATCH 2/3] chore: bump sdr --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1668505cb..5c9900dc2 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@salesforce/kit": "^3.2.4", "@salesforce/plugin-info": "^3.4.93", "@salesforce/sf-plugins-core": "^12.2.4", - "@salesforce/source-deploy-retrieve": "^12.24.1", + "@salesforce/source-deploy-retrieve": "^12.24.3", "@salesforce/source-tracking": "^7.4.10", "@salesforce/ts-types": "^2.0.12", "ansis": "^3.17.0", diff --git a/yarn.lock b/yarn.lock index fff7aa21e..59ec31425 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1684,10 +1684,10 @@ cli-progress "^3.12.0" terminal-link "^3.0.0" -"@salesforce/source-deploy-retrieve@^12.22.11", "@salesforce/source-deploy-retrieve@^12.24.0", "@salesforce/source-deploy-retrieve@^12.24.1": - version "12.24.2" - resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.24.2.tgz#b76c1a4c986dcac6e14bbffe80ff7e4934135994" - integrity sha512-3erIjuoUXt9FNjOaOg8a9Vzmbk1keUvfqRwKg02pKu1Ad/oqZXg5uPPPehJb1vM1lE18c/8kP6vkQmS0hasqUw== +"@salesforce/source-deploy-retrieve@^12.22.11", "@salesforce/source-deploy-retrieve@^12.24.0", "@salesforce/source-deploy-retrieve@^12.24.3": + version "12.24.3" + resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.24.3.tgz#125be3a3e6d0d0f21068648ce4a2e4bb49ea57b6" + integrity sha512-MTpilWa+1mOqZUEmbE7K/vgHAT0FjGDv9L6vn7Cof3kRhk3RZprIjR6Sd9/x1WteI+hR5JAMCDbKT/WiWJcKYw== dependencies: "@salesforce/core" "^8.23.2" "@salesforce/kit" "^3.2.4" From f5f5ac67904e60cbf692c3c6307fbeeaf786bcfa Mon Sep 17 00:00:00 2001 From: Willie Ruemmele Date: Tue, 21 Oct 2025 11:07:57 -0600 Subject: [PATCH 3/3] test: fix regex assertion --- test/commands/deploy/metadata.nut.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/commands/deploy/metadata.nut.ts b/test/commands/deploy/metadata.nut.ts index 3d651b3d0..c03aa40f1 100644 --- a/test/commands/deploy/metadata.nut.ts +++ b/test/commands/deploy/metadata.nut.ts @@ -65,9 +65,10 @@ describe('deploy metadata NUTs', () => { await testkit.expect.filesToBeDeployed(['force-app/main/default/classes/*']); // no illegal file paths should be generated when using SF_MDAPI_TEMP_DIR + // Users/william.ruemmele/projects/oss/plugin-deploy-retrieve/test_session_1761066173823d94ce455705e3fe5/dreamhouse-lwc/myTempDirectory/2025-10-21T17_03_52.245Z_deploy/metadata/package.xml expect( - (await getAllFilePaths(join(testkit.projectDir, process.env.SF_MDAPI_TEMP_DIR))).every( - (path) => !/[<>:"/\\|?*]/.test(path) + (await getAllFilePaths(join(testkit.projectDir, process.env.SF_MDAPI_TEMP_DIR))).every((path) => + /[<>:"/\\|?*]/.test(path) ) ).to.be.true;