diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/WebhookConstants.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/WebhookConstants.tsx
index a83df29b33c..d95d6ae0fdf 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/WebhookConstants.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/WebhookConstants.tsx
@@ -22,6 +22,6 @@ export const UPDATE_EVENTS_DEFAULT_VALUE = {
};
export const DELETE_EVENTS_DEFAULT_VALUE = {
- eventType: '"entityDeleted"',
+ eventType: 'entityDeleted',
entities: ['*', 'table', 'topic', 'dashboard', 'pipeline'],
};
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.component.tsx
index 5a62d6f8679..47e2d3ce40a 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.component.tsx
@@ -11,7 +11,7 @@
* limitations under the License.
*/
-import { AxiosError } from 'axios';
+import { AxiosError, AxiosResponse } from 'axios';
import { LoadingState } from 'Models';
import React, { FunctionComponent, useState } from 'react';
import { useHistory } from 'react-router-dom';
@@ -43,12 +43,16 @@ const AddWebhookPage: FunctionComponent = () => {
const handleSave = (data: CreateWebhook) => {
setStatus('waiting');
addWebhook(data)
- .then(() => {
- setStatus('success');
- setTimeout(() => {
- setStatus('initial');
- goToWebhooks();
- }, 500);
+ .then((res: AxiosResponse) => {
+ if (res.data) {
+ setStatus('success');
+ setTimeout(() => {
+ setStatus('initial');
+ goToWebhooks();
+ }, 500);
+ } else {
+ throw jsonData['api-error-messages']['unexpected-error'];
+ }
})
.catch((err: AxiosError) => {
showErrorToast(err, jsonData['api-error-messages']['unexpected-error']);
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.component.tsx
index f07871026bf..1262c97266e 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.component.tsx
@@ -11,7 +11,7 @@
* limitations under the License.
*/
-import { AxiosError } from 'axios';
+import { AxiosError, AxiosResponse } from 'axios';
import { LoadingState } from 'Models';
import React, { FunctionComponent, useEffect, useState } from 'react';
import { useHistory, useParams } from 'react-router-dom';
@@ -46,7 +46,11 @@ const EditWebhookPage: FunctionComponent = () => {
setIsLoading(true);
getWebhookByName(webhookName)
.then((res) => {
- setWebhookData(res.data);
+ if (res.data) {
+ setWebhookData(res.data);
+ } else {
+ throw jsonData['api-error-messages']['unexpected-error'];
+ }
})
.catch((err: AxiosError) => {
showErrorToast(err, jsonData['api-error-messages']['unexpected-error']);
@@ -66,12 +70,16 @@ const EditWebhookPage: FunctionComponent = () => {
setStatus('waiting');
const { name, secretKey } = webhookData || data;
updateWebhook({ ...data, name, secretKey })
- .then(() => {
- setStatus('success');
- setTimeout(() => {
- setStatus('initial');
- goToWebhooks();
- }, 500);
+ .then((res: AxiosResponse) => {
+ if (res.data) {
+ setStatus('success');
+ setTimeout(() => {
+ setStatus('initial');
+ goToWebhooks();
+ }, 500);
+ } else {
+ throw jsonData['api-error-messages']['unexpected-error'];
+ }
})
.catch((err: AxiosError) => {
showErrorToast(err, jsonData['api-error-messages']['unexpected-error']);
@@ -82,9 +90,13 @@ const EditWebhookPage: FunctionComponent = () => {
const handleDelete = (id: string) => {
setDeleteStatus('waiting');
deleteWebhook(id)
- .then(() => {
- setDeleteStatus('initial');
- goToWebhooks();
+ .then((res: AxiosResponse) => {
+ if (res.data) {
+ setDeleteStatus('initial');
+ goToWebhooks();
+ } else {
+ throw jsonData['api-error-messages']['unexpected-error'];
+ }
})
.catch((err: AxiosError) => {
showErrorToast(err, jsonData['api-error-messages']['unexpected-error']);
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.test.tsx
index 43f34bb9cae..2c3a60d7dce 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/EditWebhookPage/EditWebhookPage.test.tsx
@@ -134,6 +134,23 @@ describe('Test DatasetDetails page', () => {
expect(addWebhookComponent).toBeInTheDocument();
});
+ it('Show error message on empty response of getWebhookByName api', async () => {
+ (getWebhookByName as jest.Mock).mockImplementationOnce(() =>
+ Promise.resolve({
+ response: { data: '' },
+ })
+ );
+ const { container } = render(, {
+ wrapper: MemoryRouter,
+ });
+ const addWebhookComponent = await findByText(
+ container,
+ /AddWebhookComponent/i
+ );
+
+ expect(addWebhookComponent).toBeInTheDocument();
+ });
+
it('Show error message on failing of deleteWebhook api', async () => {
(deleteWebhook as jest.Mock).mockImplementationOnce(() =>
Promise.reject({
@@ -150,5 +167,22 @@ describe('Test DatasetDetails page', () => {
expect(addWebhookComponent).toBeInTheDocument();
});
+
+ it('Show error message on on empty response of deleteWebhook api', async () => {
+ (deleteWebhook as jest.Mock).mockImplementationOnce(() =>
+ Promise.resolve({
+ response: { data: '' },
+ })
+ );
+ const { container } = render(, {
+ wrapper: MemoryRouter,
+ });
+ const addWebhookComponent = await findByText(
+ container,
+ /AddWebhookComponent/i
+ );
+
+ expect(addWebhookComponent).toBeInTheDocument();
+ });
});
});