Skip to content

Commit be4e949

Browse files
test: add an assertion for SF_MDAPI_TEMP_DIR fix @W-19870602@ (#1460)
* test: add an assertion for SF_MDAPI_TEMP_DIR fix * chore: bump sdr * test: fix regex assertion --------- Co-authored-by: Cristian Dominguez <cdominguez@salesforce.com>
1 parent a38f1b2 commit be4e949

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"@salesforce/kit": "^3.2.4",
1414
"@salesforce/plugin-info": "^3.4.93",
1515
"@salesforce/sf-plugins-core": "^12.2.4",
16-
"@salesforce/source-deploy-retrieve": "^12.24.1",
16+
"@salesforce/source-deploy-retrieve": "^12.24.3",
1717
"@salesforce/source-tracking": "^7.4.10",
1818
"@salesforce/ts-types": "^2.0.12",
1919
"ansis": "^3.17.0",

test/commands/deploy/metadata.nut.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,26 @@
1515
*/
1616

1717
import { fileURLToPath } from 'node:url';
18+
import { join } from 'node:path';
19+
import { readdir } from 'node:fs/promises';
1820
import { SourceTestkit } from '@salesforce/source-testkit';
21+
import { expect } from 'chai';
22+
23+
async function getAllFilePaths(dir: string): Promise<string[]> {
24+
let filePaths: string[] = [];
25+
const entries = await readdir(dir, { withFileTypes: true });
26+
27+
for (const entry of entries) {
28+
const fullPath = join(dir, entry.name);
29+
if (entry.isFile()) {
30+
filePaths.push(fullPath);
31+
} else if (entry.isDirectory()) {
32+
// eslint-disable-next-line no-await-in-loop
33+
filePaths = filePaths.concat(await getAllFilePaths(fullPath));
34+
}
35+
}
36+
return filePaths;
37+
}
1938

2039
describe('deploy metadata NUTs', () => {
2140
let testkit: SourceTestkit;
@@ -40,9 +59,20 @@ describe('deploy metadata NUTs', () => {
4059

4160
describe('--metadata flag', () => {
4261
it('should deploy ApexClass', async () => {
62+
process.env.SF_MDAPI_TEMP_DIR = 'myTempDirectory';
4363
await testkit.modifyLocalGlobs(['force-app/main/default/classes/*.cls'], '// comment');
4464
await testkit.deploy({ args: '--metadata ApexClass' });
4565
await testkit.expect.filesToBeDeployed(['force-app/main/default/classes/*']);
66+
67+
// no illegal file paths should be generated when using SF_MDAPI_TEMP_DIR
68+
// Users/william.ruemmele/projects/oss/plugin-deploy-retrieve/test_session_1761066173823d94ce455705e3fe5/dreamhouse-lwc/myTempDirectory/2025-10-21T17_03_52.245Z_deploy/metadata/package.xml
69+
expect(
70+
(await getAllFilePaths(join(testkit.projectDir, process.env.SF_MDAPI_TEMP_DIR))).every((path) =>
71+
/[<>:"/\\|?*]/.test(path)
72+
)
73+
).to.be.true;
74+
75+
delete process.env.SF_MDAPI_TEMP_DIR;
4676
});
4777

4878
it('should deploy named ApexClass', async () => {

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,10 +1684,10 @@
16841684
cli-progress "^3.12.0"
16851685
terminal-link "^3.0.0"
16861686

1687-
"@salesforce/source-deploy-retrieve@^12.22.11", "@salesforce/source-deploy-retrieve@^12.24.0", "@salesforce/source-deploy-retrieve@^12.24.1":
1688-
version "12.24.2"
1689-
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.24.2.tgz#b76c1a4c986dcac6e14bbffe80ff7e4934135994"
1690-
integrity sha512-3erIjuoUXt9FNjOaOg8a9Vzmbk1keUvfqRwKg02pKu1Ad/oqZXg5uPPPehJb1vM1lE18c/8kP6vkQmS0hasqUw==
1687+
"@salesforce/source-deploy-retrieve@^12.22.11", "@salesforce/source-deploy-retrieve@^12.24.0", "@salesforce/source-deploy-retrieve@^12.24.3":
1688+
version "12.24.3"
1689+
resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.24.3.tgz#125be3a3e6d0d0f21068648ce4a2e4bb49ea57b6"
1690+
integrity sha512-MTpilWa+1mOqZUEmbE7K/vgHAT0FjGDv9L6vn7Cof3kRhk3RZprIjR6Sd9/x1WteI+hR5JAMCDbKT/WiWJcKYw==
16911691
dependencies:
16921692
"@salesforce/core" "^8.23.2"
16931693
"@salesforce/kit" "^3.2.4"

0 commit comments

Comments
 (0)