From ffd10f5f2a79d74f23ebec4c70be41f4bcc75d20 Mon Sep 17 00:00:00 2001 From: Dhruv Parmar <83108871+dhruvjsx@users.noreply.github.com> Date: Mon, 30 Jun 2025 17:09:10 +0530 Subject: [PATCH] Fix(ui):Test connection timeout message improvement (#21949) * test connection timeout message improvement * updated message * updated message * fixed sonar --- .../ServiceConfig/ConnectionConfigForm.tsx | 1 + .../TestConnection.interface.ts | 1 + .../TestConnection/TestConnection.test.tsx | 2 +- .../common/TestConnection/TestConnection.tsx | 14 ++++++++-- .../TestConnectionModal.tsx | 23 ++++++++++++++-- .../ui/src/constants/Services.constant.ts | 4 --- .../ui/src/locale/languages/de-de.json | 5 +++- .../ui/src/locale/languages/en-us.json | 5 +++- .../ui/src/locale/languages/es-es.json | 5 +++- .../ui/src/locale/languages/fr-fr.json | 5 +++- .../ui/src/locale/languages/gl-es.json | 5 +++- .../ui/src/locale/languages/he-he.json | 5 +++- .../ui/src/locale/languages/ja-jp.json | 5 +++- .../ui/src/locale/languages/ko-kr.json | 5 +++- .../ui/src/locale/languages/mr-in.json | 5 +++- .../ui/src/locale/languages/nl-nl.json | 5 +++- .../ui/src/locale/languages/pr-pr.json | 5 +++- .../ui/src/locale/languages/pt-br.json | 5 +++- .../ui/src/locale/languages/pt-pt.json | 5 +++- .../ui/src/locale/languages/ru-ru.json | 5 +++- .../ui/src/locale/languages/th-th.json | 5 +++- .../ui/src/locale/languages/tr-tr.json | 5 +++- .../ui/src/locale/languages/zh-cn.json | 5 +++- .../ServiceDetailsPage/ServiceDetailsPage.tsx | 26 ++++++++++++++++++- 24 files changed, 129 insertions(+), 27 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/ServiceConfig/ConnectionConfigForm.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/ServiceConfig/ConnectionConfigForm.tsx index 0be688dcb81..6fe02c009f4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/ServiceConfig/ConnectionConfigForm.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/ServiceConfig/ConnectionConfigForm.tsx @@ -196,6 +196,7 @@ const ConnectionConfigForm = ({ formRef.current?.state?.formData} + hostIp={hostIp} isTestingDisabled={disableTestConnection} serviceCategory={serviceCategory} serviceName={data?.name} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.interface.ts index 707c5183e6d..eda75584c30 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.interface.ts @@ -23,6 +23,7 @@ export interface TestConnectionProps { serviceName?: string; shouldValidateForm?: boolean; onValidateFormRequiredFields?: () => boolean; + hostIp?: string; } export type TestStatus = Exclude | 'Warning' | undefined; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.test.tsx index 153f8dc2d0b..4859815e32e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.test.tsx @@ -325,7 +325,7 @@ describe('Test Connection Component', () => { }); expect( - await screen.findByText('message.test-connection-taking-too-long') + screen.getByText('message.test-connection-taking-too-long.default') ).toBeInTheDocument(); // 59 since it will make this amount of call, and after timeout it should not make more api calls diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.tsx index a9b3fda2249..346bfbab3ca 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.tsx @@ -24,7 +24,6 @@ import { FETCHING_EXPIRY_TIME, FETCH_INTERVAL, TEST_CONNECTION_FAILURE_MESSAGE, - TEST_CONNECTION_INFO_MESSAGE, TEST_CONNECTION_INITIAL_MESSAGE, TEST_CONNECTION_PROGRESS_PERCENTAGE, TEST_CONNECTION_SUCCESS_MESSAGE, @@ -71,6 +70,7 @@ const TestConnection: FC = ({ onValidateFormRequiredFields, shouldValidateForm = true, showDetails = true, + hostIp, }) => { const { t } = useTranslation(); const { isAirflowAvailable } = useAirflowStatus(); @@ -328,7 +328,15 @@ const TestConnection: FC = ({ ); if (!isWorkflowCompleted) { - setMessage(TEST_CONNECTION_INFO_MESSAGE); + let message = t('message.test-connection-taking-too-long.default', { + service_type: serviceType, + }); + if (hostIp) { + message += t('message.test-connection-taking-too-long.withIp', { + ip: hostIp, + }); + } + setMessage(message); setIsConnectionTimeout(true); } @@ -496,10 +504,12 @@ const TestConnection: FC = ({ void; + serviceType?: string; + hostIp?: string; } const TestConnectionModal: FC = ({ @@ -57,9 +59,12 @@ const TestConnectionModal: FC = ({ onTestConnection, errorMessage, handleCloseErrorMessage, + serviceType, + hostIp, }) => { const { t } = useTranslation(); + const [message, setMessage] = useState(); const getConnectionStepResult = (step: TestConnectionStep) => { return testConnectionStepResult.find( (resultStep) => resultStep.name === step.name @@ -70,6 +75,20 @@ const TestConnectionModal: FC = ({ return {`${progress}%`}; }; + useEffect(() => { + const msg = t('message.test-connection-taking-too-long.default', { + service_type: serviceType, + }); + if (hostIp) { + const hostIpMessage = + msg + + t('message.test-connection-taking-too-long.withIp', { ip: hostIp }); + setMessage(hostIpMessage); + } else { + setMessage(msg); + } + }, [hostIp]); + return ( = ({ {t('label.connection-timeout')} - {t('message.test-connection-taking-too-long')} + {message}