42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
|
import * as assert from 'assert';
|
||
|
import { Context } from '.';
|
||
|
import { substituteVariablesInEnv } from '../../src/config';
|
||
|
|
||
|
export async function getTests(ctx: Context) {
|
||
|
await ctx.suite('Server Env Settings', suite => {
|
||
|
suite.addTest('Replacing Env Variables', async () => {
|
||
|
const envJson = {
|
||
|
USING_MY_VAR: "${env:MY_VAR} test ${env:MY_VAR}",
|
||
|
MY_VAR: "test"
|
||
|
};
|
||
|
const expectedEnv = {
|
||
|
USING_MY_VAR: "test test test",
|
||
|
MY_VAR: "test"
|
||
|
};
|
||
|
const actualEnv = await substituteVariablesInEnv(envJson);
|
||
|
assert.deepStrictEqual(actualEnv, expectedEnv);
|
||
|
});
|
||
|
|
||
|
suite.addTest('Circular dependencies remain as is', async () => {
|
||
|
const envJson = {
|
||
|
A_USES_B: "${env:B_USES_A}",
|
||
|
B_USES_A: "${env:A_USES_B}",
|
||
|
C_USES_ITSELF: "${env:C_USES_ITSELF}",
|
||
|
D_USES_C: "${env:C_USES_ITSELF}",
|
||
|
E_IS_ISOLATED: "test",
|
||
|
F_USES_E: "${env:E_IS_ISOLATED}"
|
||
|
};
|
||
|
const expectedEnv = {
|
||
|
A_USES_B: "${env:B_USES_A}",
|
||
|
B_USES_A: "${env:A_USES_B}",
|
||
|
C_USES_ITSELF: "${env:C_USES_ITSELF}",
|
||
|
D_USES_C: "${env:C_USES_ITSELF}",
|
||
|
E_IS_ISOLATED: "test",
|
||
|
F_USES_E: "test"
|
||
|
};
|
||
|
const actualEnv = await substituteVariablesInEnv(envJson);
|
||
|
assert.deepStrictEqual(actualEnv, expectedEnv);
|
||
|
});
|
||
|
});
|
||
|
}
|