summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/config/settings.test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/cli/src/config/settings.test.ts b/packages/cli/src/config/settings.test.ts
index a562c664..6c075b38 100644
--- a/packages/cli/src/config/settings.test.ts
+++ b/packages/cli/src/config/settings.test.ts
@@ -533,6 +533,30 @@ describe('Settings Loading and Merging', () => {
delete process.env.MY_ENV_STRING;
delete process.env.MY_ENV_STRING_NESTED;
});
+
+ it('should resolve multiple concatenated environment variables in a single string value', () => {
+ process.env.TEST_HOST = 'myhost';
+ process.env.TEST_PORT = '9090';
+ const userSettingsContent = {
+ serverAddress: '${TEST_HOST}:${TEST_PORT}/api',
+ };
+ (mockFsExistsSync as Mock).mockImplementation(
+ (p: fs.PathLike) => p === USER_SETTINGS_PATH,
+ );
+ (fs.readFileSync as Mock).mockImplementation(
+ (p: fs.PathOrFileDescriptor) => {
+ if (p === USER_SETTINGS_PATH)
+ return JSON.stringify(userSettingsContent);
+ return '{}';
+ },
+ );
+
+ const settings = loadSettings(MOCK_WORKSPACE_DIR);
+ expect(settings.user.settings.serverAddress).toBe('myhost:9090/api');
+
+ delete process.env.TEST_HOST;
+ delete process.env.TEST_PORT;
+ });
});
describe('LoadedSettings class', () => {