Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/tests/unit/settings.test.ts')
| -rw-r--r-- | editors/code/tests/unit/settings.test.ts | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/editors/code/tests/unit/settings.test.ts b/editors/code/tests/unit/settings.test.ts new file mode 100644 index 0000000000..dca4e38d13 --- /dev/null +++ b/editors/code/tests/unit/settings.test.ts @@ -0,0 +1,61 @@ +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); + }); + + suite.addTest('Should support external variables', async () => { + const envJson = { + USING_EXTERNAL_VAR: "${env:TEST_VARIABLE} test ${env:TEST_VARIABLE}" + }; + const expectedEnv = { + USING_EXTERNAL_VAR: "test test test" + }; + + const actualEnv = await substituteVariablesInEnv(envJson); + assert.deepStrictEqual(actualEnv, expectedEnv); + }); + + suite.addTest('should support VSCode variables', async () => { + const envJson = { + USING_VSCODE_VAR: "${workspaceFolderBasename}" + }; + const actualEnv = await substituteVariablesInEnv(envJson); + assert.deepStrictEqual(actualEnv.USING_VSCODE_VAR, 'code'); + }); + }); +} |