Skip to content

Commit a2d045b

Browse files
committed
test: add setup and cleanup functions
1 parent 15103a1 commit a2d045b

File tree

4 files changed

+49
-67
lines changed

4 files changed

+49
-67
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/* eslint-disable no-await-in-loop */
2+
import { rm } from 'node:fs/promises';
3+
import { resolve } from 'node:path';
4+
5+
import { formatOptions } from '../../../src/utils/constants.js';
6+
import { sfdxConfigFile, inputJsons, defaultPath } from './testConstants.js';
7+
8+
export async function postTestCleanup(): Promise<void> {
9+
await rm(sfdxConfigFile);
10+
await rm('force-app/main/default/classes/AccountProfile.cls');
11+
await rm('packaged/triggers/AccountTrigger.trigger');
12+
await rm('force-app', { recursive: true });
13+
await rm('packaged', { recursive: true });
14+
15+
const pathsToRemove = formatOptions
16+
.flatMap((format) =>
17+
inputJsons.map(({ label }) => {
18+
const extension = format === 'lcovonly' ? 'info' : 'xml';
19+
return resolve(`${format}_${label}.${extension}`);
20+
})
21+
)
22+
.concat(defaultPath);
23+
24+
for (const path of pathsToRemove) {
25+
await rm(path).catch(() => {});
26+
}
27+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/* eslint-disable no-await-in-loop */
2+
import { mkdir, copyFile, writeFile } from 'node:fs/promises';
3+
4+
import { sfdxConfigFile, baselineClassPath, baselineTriggerPath, configJsonString } from './testConstants.js';
5+
6+
export async function preTestSetup(): Promise<void> {
7+
await mkdir('force-app/main/default/classes', { recursive: true });
8+
await mkdir('packaged/triggers', { recursive: true });
9+
await copyFile(baselineClassPath, 'force-app/main/default/classes/AccountProfile.cls');
10+
await copyFile(baselineTriggerPath, 'packaged/triggers/AccountTrigger.trigger');
11+
await writeFile(sfdxConfigFile, configJsonString);
12+
}

test/commands/acc-transformer/transform.nut.ts

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,27 @@
11
/* eslint-disable no-await-in-loop */
22
'use strict';
33

4-
import { copyFile, writeFile, rm, mkdir } from 'node:fs/promises';
54
import { resolve } from 'node:path';
65

76
import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit';
87
import { expect } from 'chai';
98
import { formatOptions } from '../../../src/utils/constants.js';
10-
import {
11-
baselineClassPath,
12-
baselineTriggerPath,
13-
configJsonString,
14-
sfdxConfigFile,
15-
inputJsons,
16-
defaultPath,
17-
invalidJson,
18-
} from './testConstants.js';
9+
import { inputJsons, invalidJson } from './testConstants.js';
1910
import { compareToBaselines } from './baselineCompare.js';
11+
import { postTestCleanup } from './testCleanup.js';
12+
import { preTestSetup } from './testSetup.js';
2013

2114
describe('acc-transformer transform NUTs', () => {
2215
let session: TestSession;
2316

2417
before(async () => {
2518
session = await TestSession.create({ devhubAuthStrategy: 'NONE' });
26-
await mkdir('force-app/main/default/classes', { recursive: true });
27-
await mkdir('packaged/triggers', { recursive: true });
28-
await copyFile(baselineClassPath, 'force-app/main/default/classes/AccountProfile.cls');
29-
await copyFile(baselineTriggerPath, 'packaged/triggers/AccountTrigger.trigger');
30-
await writeFile(sfdxConfigFile, configJsonString);
19+
await preTestSetup();
3120
});
3221

3322
after(async () => {
3423
await session?.clean();
35-
await rm(sfdxConfigFile);
36-
await rm('force-app/main/default/classes/AccountProfile.cls');
37-
await rm('packaged/triggers/AccountTrigger.trigger');
38-
await rm('force-app', { recursive: true });
39-
await rm('packaged', { recursive: true });
40-
41-
const pathsToRemove = formatOptions
42-
.flatMap((format) =>
43-
inputJsons.map(({ label }) => {
44-
const extension = format === 'lcovonly' ? 'info' : 'xml';
45-
return resolve(`${format}_${label}.${extension}`);
46-
})
47-
)
48-
.concat(defaultPath);
49-
50-
for (const path of pathsToRemove) {
51-
await rm(path).catch(() => {});
52-
}
24+
await postTestCleanup();
5325
});
5426

5527
formatOptions.forEach((format) => {

test/commands/acc-transformer/transform.test.ts

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,24 @@
11
/* eslint-disable no-await-in-loop */
22
'use strict';
33

4-
import { copyFile, writeFile, rm, mkdir } from 'node:fs/promises';
54
import { resolve } from 'node:path';
65

76
import { TestContext } from '@salesforce/core/testSetup';
87
import { expect } from 'chai';
98
import { stubSfCommandUx } from '@salesforce/sf-plugins-core';
109
import TransformerTransform from '../../../src/commands/acc-transformer/transform.js';
1110
import { formatOptions } from '../../../src/utils/constants.js';
12-
import {
13-
baselineClassPath,
14-
baselineTriggerPath,
15-
configJsonString,
16-
sfdxConfigFile,
17-
inputJsons,
18-
defaultPath,
19-
invalidJson,
20-
deployCoverage,
21-
} from './testConstants.js';
11+
import { inputJsons, defaultPath, invalidJson, deployCoverage } from './testConstants.js';
2212
import { compareToBaselines } from './baselineCompare.js';
13+
import { postTestCleanup } from './testCleanup.js';
14+
import { preTestSetup } from './testSetup.js';
2315

2416
describe('main', () => {
2517
const $$ = new TestContext();
2618
let sfCommandStubs: ReturnType<typeof stubSfCommandUx>;
2719

2820
before(async () => {
29-
await mkdir('force-app/main/default/classes', { recursive: true });
30-
await mkdir('packaged/triggers', { recursive: true });
31-
await copyFile(baselineClassPath, 'force-app/main/default/classes/AccountProfile.cls');
32-
await copyFile(baselineTriggerPath, 'packaged/triggers/AccountTrigger.trigger');
33-
await writeFile(sfdxConfigFile, configJsonString);
21+
await preTestSetup();
3422
});
3523

3624
beforeEach(() => {
@@ -42,24 +30,7 @@ describe('main', () => {
4230
});
4331

4432
after(async () => {
45-
await rm(sfdxConfigFile);
46-
await rm('force-app/main/default/classes/AccountProfile.cls');
47-
await rm('packaged/triggers/AccountTrigger.trigger');
48-
await rm('force-app', { recursive: true });
49-
await rm('packaged', { recursive: true });
50-
51-
const pathsToRemove = formatOptions
52-
.flatMap((format) =>
53-
inputJsons.map(({ label }) => {
54-
const extension = format === 'lcovonly' ? 'info' : 'xml';
55-
return resolve(`${format}_${label}.${extension}`);
56-
})
57-
)
58-
.concat(defaultPath);
59-
60-
for (const path of pathsToRemove) {
61-
await rm(path).catch(() => {});
62-
}
33+
await postTestCleanup();
6334
});
6435

6536
formatOptions.forEach((format) => {

0 commit comments

Comments
 (0)