Skip to content

Commit ea69cac

Browse files
committedApr 6, 2024·
refactor integration tests
1 parent 2793ecb commit ea69cac

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed
 

‎test/utils/test-utils.ts

+17-25
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ export function runNcaAndVerifyOutput(verifyOutput: VerifyOutput, ...args: strin
4040
}
4141

4242
export function createAliasAndVerifyOutput(testCompletion: TestCompletion) {
43-
try {
44-
setup();
45-
43+
installNcaAndTest(() => {
4644
throwErrorIfExitCodeNotZero(createAlias(testCompletion.aliasCommand));
4745

4846
const aliasCommandResult = runCommandSync(
@@ -58,18 +56,11 @@ export function createAliasAndVerifyOutput(testCompletion: TestCompletion) {
5856

5957
expect(aliasCommandResult.stderr).to.equal(commandResult.stderr);
6058
expect(aliasCommandResult.stdout).to.equal(commandResult.stdout);
61-
} catch (error) {
62-
console.error(error);
63-
throw error;
64-
} finally {
65-
cleanup(testCompletion.aliasName);
66-
}
59+
}, testCompletion.aliasName);
6760
}
6861

6962
export function renameAliasAndVerifyOutput(aliasName: string, aliasNewName: string, args: string[]) {
70-
try {
71-
setup();
72-
63+
installNcaAndTest(() => {
7364
throwErrorIfExitCodeNotZero(createAlias(args));
7465

7566
const aliasCommandResult = runCommandSync(aliasName);
@@ -80,18 +71,11 @@ export function renameAliasAndVerifyOutput(aliasName: string, aliasNewName: stri
8071

8172
expect(aliasCommandResult.stderr).to.equal(postRenameCommandResult.stderr);
8273
expect(aliasCommandResult.stdout).to.equal(postRenameCommandResult.stdout);
83-
} catch (error) {
84-
console.error(error);
85-
throw error;
86-
} finally {
87-
cleanup(aliasNewName);
88-
}
74+
}, aliasNewName);
8975
}
9076

9177
export function verifyNcaAliasCompletion(testCompletion: TestCompletion) {
92-
try {
93-
setup();
94-
78+
installNcaAndTest(() => {
9579
throwErrorIfExitCodeNotZero(createAlias(testCompletion.aliasCommand));
9680

9781
const completionResult = runCommandSync('nca', 'completion');
@@ -110,11 +94,19 @@ export function verifyNcaAliasCompletion(testCompletion: TestCompletion) {
11094
expect('').to.equal(invokeAliasCompletionResult.stderr);
11195
const expected = testCompletion.expectedOutput.join('\n') + '\n';
11296
expect(expected).to.equal(invokeAliasCompletionResult.stdout);
97+
}, testCompletion.aliasName);
98+
}
99+
100+
export function installNcaAndTest(testFunction: () => void, aliasName: string | null = null) {
101+
try {
102+
setup();
103+
104+
testFunction();
113105
} catch (error) {
114106
console.error(error);
115107
throw error;
116108
} finally {
117-
cleanup(testCompletion.aliasName);
109+
cleanup(aliasName);
118110
}
119111
}
120112

@@ -154,19 +146,19 @@ function runNcaCommand(...args: string[]): ChildProcess {
154146
return spawn(Platform.values.ncaCommand, args, { shell: true });
155147
}
156148

157-
function createAlias(args: string[]): SpawnSyncReturns<string> {
149+
export function createAlias(args: string[]): SpawnSyncReturns<string> {
158150
return spawnSync('nca', ['alias', 'add', ...args], { encoding: 'utf-8', shell: true });
159151
}
160152

161-
function runCommandSync(command: string, ...args: string[]): SpawnSyncReturns<string> {
153+
export function runCommandSync(command: string, ...args: string[]): SpawnSyncReturns<string> {
162154
return spawnSync(command, args, { encoding: 'utf-8', shell: true });
163155
}
164156

165157
function bufferToString(buffer: ArrayBuffer | SharedArrayBuffer | { valueOf(): ArrayBuffer | SharedArrayBuffer; }): string {
166158
return Buffer.from(buffer).toString();
167159
}
168160

169-
function throwErrorIfExitCodeNotZero(result: SpawnSyncReturns<string>) {
161+
export function throwErrorIfExitCodeNotZero(result: SpawnSyncReturns<string>) {
170162
if (result.status !== 0) {
171163
throw new Error(result.stderr);
172164
}

0 commit comments

Comments
 (0)
Please sign in to comment.