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); }); }); }