From b4a6b16227bd94bae99401b2effac8a24c3f92ff Mon Sep 17 00:00:00 2001 From: jerop Date: Fri, 6 Jun 2025 15:38:44 +0000 Subject: [PATCH] Test: Verify concatenated env var resolution in settings Adds a test case to `settings.test.ts` to specifically verify the correct resolution of multiple environment variables concatenated within a single string value (e.g., ${HOST}:${PORT} ). --- packages/cli/src/config/settings.test.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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', () => {