rust/editors/code/tests/unit/settings.test.ts

62 lines
2.3 KiB
TypeScript
Raw Normal View History

2022-05-17 12:15:06 -05:00
import * as assert from "assert";
import { Context } from ".";
import { substituteVariablesInEnv } from "../../src/config";
export async function getTests(ctx: Context) {
2022-05-17 12:15:06 -05:00
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}",
2022-05-17 12:15:06 -05:00
MY_VAR: "test",
};
const expectedEnv = {
USING_MY_VAR: "test test test",
2022-05-17 12:15:06 -05:00
MY_VAR: "test",
};
const actualEnv = await substituteVariablesInEnv(envJson);
assert.deepStrictEqual(actualEnv, expectedEnv);
});
2022-05-17 12:15:06 -05:00
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",
2022-05-17 12:15:06 -05:00
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",
2022-05-17 12:15:06 -05:00
F_USES_E: "test",
};
const actualEnv = await substituteVariablesInEnv(envJson);
assert.deepStrictEqual(actualEnv, expectedEnv);
});
2022-05-17 12:15:06 -05:00
suite.addTest("Should support external variables", async () => {
const envJson = {
2022-05-17 12:15:06 -05:00
USING_EXTERNAL_VAR: "${env:TEST_VARIABLE} test ${env:TEST_VARIABLE}",
};
const expectedEnv = {
2022-05-17 12:15:06 -05:00
USING_EXTERNAL_VAR: "test test test",
};
const actualEnv = await substituteVariablesInEnv(envJson);
assert.deepStrictEqual(actualEnv, expectedEnv);
});
2022-05-17 12:15:06 -05:00
suite.addTest("should support VSCode variables", async () => {
const envJson = {
2022-05-17 12:15:06 -05:00
USING_VSCODE_VAR: "${workspaceFolderBasename}",
};
const actualEnv = await substituteVariablesInEnv(envJson);
2022-05-17 12:15:06 -05:00
assert.deepStrictEqual(actualEnv.USING_VSCODE_VAR, "code");
});
});
}