diff --git a/openmetadata-ui/src/main/resources/ui/src/mocks/Glossary.mock.ts b/openmetadata-ui/src/main/resources/ui/src/mocks/Glossary.mock.ts
new file mode 100644
index 00000000000..3176a2178a0
--- /dev/null
+++ b/openmetadata-ui/src/main/resources/ui/src/mocks/Glossary.mock.ts
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Status } from '../generated/entity/data/glossaryTerm';
+
+export const mockedAssetData = {
+ currPage: 1,
+ data: [],
+ total: 0,
+};
+
+export const mockedGlossaryTerms = [
+ {
+ id: 'a5a97523-2229-41e5-abbe-65f61a534c34',
+ name: 'Clothing',
+ displayName: 'Clothing',
+ description: '',
+ fullyQualifiedName: 'Business Glossary.Clothing',
+ synonyms: [],
+ glossary: {
+ id: 'mocked-glossary-id',
+ type: 'glossary',
+ name: 'Mock Glossary',
+ description: '',
+ displayName: 'Mock Glossary',
+ deleted: false,
+ },
+ children: [],
+ relatedTerms: [],
+ references: [],
+ version: 1.3,
+ updatedAt: 1647931273177,
+ updatedBy: 'anonymous',
+ reviewers: [
+ {
+ deleted: false,
+ displayName: 'Mocked User',
+ id: 'mocked-user-id',
+ name: 'mocked_user',
+ type: 'user',
+ },
+ ],
+ tags: [],
+ changeDescription: {
+ fieldsAdded: [],
+ fieldsUpdated: [],
+ fieldsDeleted: [],
+ previousVersion: 1,
+ },
+ status: 'Draft' as Status,
+ deleted: false,
+ },
+];
+
+export const mockedGlossaries = [
+ {
+ children: mockedGlossaryTerms,
+ deleted: false,
+ displayName: 'Mocked Glossary',
+ id: 'mocked-glossary-id',
+ name: 'Mock Glossary',
+ owner: {
+ deleted: false,
+ displayName: 'Mocked User',
+ id: 'mocked-user-id',
+ name: 'mocked_user',
+ type: 'user',
+ },
+ reviewers: [],
+ tags: [],
+ updatedAt: 1234567890,
+ updatedBy: 'mocked_user',
+ version: 0.1,
+ },
+];
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.test.tsx
new file mode 100644
index 00000000000..aea5d5f1924
--- /dev/null
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.test.tsx
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { findByText, render } from '@testing-library/react';
+import React from 'react';
+import AddGlossaryPage from './AddGlossaryPage.component';
+
+jest.mock('react-router-dom', () => ({
+ useHistory: jest.fn(),
+}));
+
+jest.mock('../../auth-provider/AuthProvider', () => {
+ return {
+ useAuthContext: jest.fn(() => ({
+ isAuthDisabled: false,
+ isAuthenticated: true,
+ isProtectedRoute: jest.fn().mockReturnValue(true),
+ isTourRoute: jest.fn().mockReturnValue(false),
+ onLogoutHandler: jest.fn(),
+ })),
+ };
+});
+
+jest.mock('../../components/AddGlossary/AddGlossary.component', () => {
+ return jest.fn().mockReturnValue(
AddGlossary.component
);
+});
+
+jest.mock('../../axiosAPIs/glossaryAPI', () => ({
+ addGlossaries: jest.fn().mockImplementation(() => Promise.resolve()),
+}));
+
+describe('Test AddGlossary component page', () => {
+ it('AddGlossary component page should render', async () => {
+ const { container } = render(
);
+
+ const addGlossary = await findByText(container, /AddGlossary.component/i);
+
+ expect(addGlossary).toBeInTheDocument();
+ });
+});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx
similarity index 95%
rename from openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx
rename to openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx
index 7cf1299b21a..4ead0be73f3 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx
@@ -21,6 +21,9 @@ import {
getGlossariesByName,
getGlossaryTermByFQN,
} from '../../axiosAPIs/glossaryAPI';
+import AddGlossaryTerm from '../../components/AddGlossaryTerm/AddGlossaryTerm.component';
+import PageContainerV1 from '../../components/containers/PageContainerV1';
+import Loader from '../../components/Loader/Loader';
import { getGlossaryPath } from '../../constants/constants';
import { CreateGlossaryTerm } from '../../generated/api/data/createGlossaryTerm';
import { Glossary } from '../../generated/entity/data/glossary';
@@ -28,9 +31,6 @@ import { GlossaryTerm } from '../../generated/entity/data/glossaryTerm';
import { useAuth } from '../../hooks/authHooks';
import useToastContext from '../../hooks/useToastContext';
import jsonData from '../../jsons/en';
-import AddGlossaryTerm from '../AddGlossaryTerm/AddGlossaryTerm.component';
-import PageContainerV1 from '../containers/PageContainerV1';
-import Loader from '../Loader/Loader';
const AddGlossaryTermPage = () => {
const { glossaryName, glossaryTermsFQN } =
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.test.tsx
new file mode 100644
index 00000000000..94195ebc009
--- /dev/null
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.test.tsx
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { findByText, render } from '@testing-library/react';
+import React from 'react';
+import AddGlossaryTermPage from './AddGlossaryTermPage.component';
+
+jest.mock('react-router-dom', () => ({
+ useHistory: jest.fn(),
+ useParams: jest.fn().mockReturnValue({
+ glossaryName: 'GlossaryName',
+ }),
+}));
+
+jest.mock('../../auth-provider/AuthProvider', () => {
+ return {
+ useAuthContext: jest.fn(() => ({
+ isAuthDisabled: false,
+ isAuthenticated: true,
+ isProtectedRoute: jest.fn().mockReturnValue(true),
+ isTourRoute: jest.fn().mockReturnValue(false),
+ onLogoutHandler: jest.fn(),
+ })),
+ };
+});
+
+jest.mock('../../components/AddGlossaryTerm/AddGlossaryTerm.component', () => {
+ return jest.fn().mockReturnValue(
AddGlossaryTerm.component
);
+});
+
+jest.mock('../../axiosAPIs/glossaryAPI', () => ({
+ addGlossaryTerm: jest.fn().mockImplementation(() => Promise.resolve()),
+ getGlossariesByName: jest.fn().mockImplementation(() => Promise.resolve()),
+ getGlossaryTermByFQN: jest.fn().mockImplementation(() => Promise.resolve()),
+}));
+
+describe('Test AddGlossaryTerm component page', () => {
+ it('AddGlossaryTerm component page should render', async () => {
+ const { container } = render(
);
+
+ const addGlossaryTerm = await findByText(
+ container,
+ /AddGlossaryTerm.component/i
+ );
+
+ expect(addGlossaryTerm).toBeInTheDocument();
+ });
+});
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/GlossaryPage/GlossaryPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/GlossaryPage/GlossaryPage.test.tsx
index f7b311addb4..82ef86c143f 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/GlossaryPage/GlossaryPage.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/GlossaryPage/GlossaryPage.test.tsx
@@ -1,3 +1,16 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { findByText, render } from '@testing-library/react';
import React from 'react';
import GlossaryPageV1 from './GlossaryPageV1.component';
diff --git a/openmetadata-ui/src/main/resources/ui/src/router/AuthenticatedAppRouter.tsx b/openmetadata-ui/src/main/resources/ui/src/router/AuthenticatedAppRouter.tsx
index 6b74f4b41bf..68224642075 100644
--- a/openmetadata-ui/src/main/resources/ui/src/router/AuthenticatedAppRouter.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/router/AuthenticatedAppRouter.tsx
@@ -16,10 +16,10 @@ import React, { FunctionComponent } from 'react';
import { Redirect, Route, Switch } from 'react-router-dom';
import AppState from '../AppState';
import { useAuthContext } from '../auth-provider/AuthProvider';
-import AddGlossaryTermPage from '../components/AddGlossaryTermPage/AddGlossaryTermPage.component';
import { ROUTES } from '../constants/constants';
import { useAuth } from '../hooks/authHooks';
import AddGlossaryPage from '../pages/AddGlossary/AddGlossaryPage.component';
+import AddGlossaryTermPage from '../pages/AddGlossaryTermPage/AddGlossaryTermPage.component';
import AddWebhookPage from '../pages/AddWebhookPage/AddWebhookPage.component';
import CreateUserPage from '../pages/CreateUserPage/CreateUserPage.component';
import DashboardDetailsPage from '../pages/DashboardDetailsPage/DashboardDetailsPage.component';