diff --git a/frontend/src/components/ConnectionModal.edit-password.test.tsx b/frontend/src/components/ConnectionModal.edit-password.test.tsx index 9a74f22..9dd7edc 100644 --- a/frontend/src/components/ConnectionModal.edit-password.test.tsx +++ b/frontend/src/components/ConnectionModal.edit-password.test.tsx @@ -53,6 +53,14 @@ describe('ConnectionModal Redis Sentinel configuration', () => { expect(source).toContain('form.setFieldValue("port", 26379)'); expect(source).toContain('form.setFieldValue("port", 6379)'); }); + + it('keeps the saved host as the primary Redis node when editing multi-node configs', () => { + expect(source).toContain('const savedPrimaryAddress = isFileDbConfigType'); + expect(source).toContain('savedPrimaryAddress,'); + expect(source).toContain('...(Array.isArray(config.hosts) ? config.hosts : [])'); + expect(source).toContain('const redisHosts ='); + expect(source).toContain('configType === "redis" ? normalizedHosts.slice(1) : [];'); + }); }); describe('ConnectionModal MongoDB configuration', () => { diff --git a/frontend/src/components/ConnectionModal.tsx b/frontend/src/components/ConnectionModal.tsx index 8700bea..ab6ed7f 100644 --- a/frontend/src/components/ConnectionModal.tsx +++ b/frontend/src/components/ConnectionModal.tsx @@ -2223,18 +2223,27 @@ const ConnectionModal: React.FC<{ const defaultPort = getDefaultPortByType(configType); const isFileDbConfigType = isFileDatabaseType(configType); const jvmDefaultValues = buildDefaultJVMConnectionValues(); + const savedPrimaryAddress = isFileDbConfigType + ? "" + : toAddress( + config.host || "localhost", + Number(config.port || defaultPort), + defaultPort, + ); const normalizedHosts = isFileDbConfigType ? [] - : normalizeAddressList(config.hosts, defaultPort); + : normalizeAddressList( + [ + savedPrimaryAddress, + ...(Array.isArray(config.hosts) ? config.hosts : []), + ], + defaultPort, + ); const primaryAddress = isFileDbConfigType ? null : parseHostPort( normalizedHosts[0] || - toAddress( - config.host || "localhost", - Number(config.port || defaultPort), - defaultPort, - ), + savedPrimaryAddress, defaultPort, ); const primaryHost = isFileDbConfigType