From d9963e0792c4030ced398a9bae71dbc0f7aabc85 Mon Sep 17 00:00:00 2001 From: Shailesh Parmar Date: Thu, 17 Feb 2022 22:11:56 +0530 Subject: [PATCH] Added test suits for multiple file (#2796) --- .../AddWebhookPage/AddWebhookPage.test.tsx | 37 ++++++++++++++ .../TopicDetails/TopicDetailsPage.test.tsx | 37 ++++++++++++++ .../pages/UserListPage/UserListPage.test.tsx | 34 +++++++++++++ .../pages/WebhooksPage/WebhooksPage.test.tsx | 35 +++++++++++++ .../ui/src/pages/login/LoginCarousel.test.tsx | 42 +++++++++++++++ .../ui/src/pages/login/LoginCarousel.tsx | 8 +-- .../resources/ui/src/pages/tags/Form.test.tsx | 4 +- .../ui/src/pages/teams/Form.test.tsx | 41 +++++++++++++++ .../resources/ui/src/pages/teams/Form.tsx | 2 + .../ui/src/pages/tour-page/TourPage.test.tsx | 51 +++++++++++++++++++ 10 files changed, 286 insertions(+), 5 deletions(-) create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPage.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/WebhooksPage/WebhooksPage.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx create mode 100644 openmetadata-ui/src/main/resources/ui/src/pages/tour-page/TourPage.test.tsx diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.test.tsx new file mode 100644 index 00000000000..57330798ba5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddWebhookPage/AddWebhookPage.test.tsx @@ -0,0 +1,37 @@ +import { findByTestId, findByText, render } from '@testing-library/react'; +import React, { ReactNode } from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import AddWebhookPage from './AddWebhookPage.component'; + +jest.mock('../../components/containers/PageContainerV1', () => { + return jest + .fn() + .mockImplementation(({ children }: { children: ReactNode }) => ( +
{children}
+ )); +}); + +jest.mock('../../components/AddWebhook/AddWebhook', () => { + return jest.fn().mockImplementation(() =>
AddWebhookComponent
); +}); + +jest.mock('../../axiosAPIs/webhookAPI', () => ({ + addWebhook: jest.fn(), +})); + +describe('Test AddWebhookPage component', () => { + it('AddWebhookPage component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const PageContainerV1 = await findByTestId(container, 'PageContainerV1'); + const AddWebhookComponent = await findByText( + container, + /AddWebhookComponent/i + ); + + expect(PageContainerV1).toBeInTheDocument(); + expect(AddWebhookComponent).toBeInTheDocument(); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.test.tsx new file mode 100644 index 00000000000..81e95ba947b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.test.tsx @@ -0,0 +1,37 @@ +import { findByText, render } from '@testing-library/react'; +import React from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import TopicDetailsPageComponent from './TopicDetailsPage.component'; + +jest.mock('../../components/TopicDetails/TopicDetails.component', () => { + return jest.fn().mockReturnValue(
TopicDetails.component
); +}); + +jest.mock('../../axiosAPIs/topicsAPI', () => ({ + addFollower: jest.fn(), + getTopicByFqn: jest.fn().mockImplementation(() => Promise.resolve()), + patchTopicDetails: jest.fn(), + removeFollower: jest.fn(), +})); + +jest.mock('react-router-dom', () => ({ + useParams: jest + .fn() + .mockReturnValue({ topicFQN: 'sample_kafka.sales', tab: 'schema' }), + useHistory: jest.fn(), +})); + +describe('Test TopicDetailsPage component', () => { + it('TopicDetailsPage component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const topicDetailComponent = await findByText( + container, + /TopicDetails.component/i + ); + + expect(topicDetailComponent).toBeInTheDocument(); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPage.test.tsx new file mode 100644 index 00000000000..93eca93774a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPage.test.tsx @@ -0,0 +1,34 @@ +import { findByTestId, findByText, render } from '@testing-library/react'; +import React, { ReactNode } from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import UserListPage from './UserListPage'; + +jest.mock('../../components/containers/PageContainerV1', () => { + return jest + .fn() + .mockImplementation(({ children }: { children: ReactNode }) => ( +
{children}
+ )); +}); + +jest.mock('../../components/UserList/UserList', () => { + return jest.fn().mockImplementation(() =>
UserListComponent
); +}); + +jest.mock('../../axiosAPIs/teamsAPI', () => ({ + getTeams: jest.fn().mockImplementation(() => Promise.resolve()), +})); + +describe('Test UserListPage component', () => { + it('UserListPage component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const PageContainerV1 = await findByTestId(container, 'PageContainerV1'); + const UserListComponent = await findByText(container, 'UserListComponent'); + + expect(PageContainerV1).toBeInTheDocument(); + expect(UserListComponent).toBeInTheDocument(); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/WebhooksPage/WebhooksPage.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/WebhooksPage/WebhooksPage.test.tsx new file mode 100644 index 00000000000..cee7c73860c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/WebhooksPage/WebhooksPage.test.tsx @@ -0,0 +1,35 @@ +import { findByTestId, findByText, render } from '@testing-library/react'; +import React, { ReactNode } from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import WebhooksPage from './WebhooksPage.component'; + +jest.mock('../../components/containers/PageContainerV1', () => { + return jest + .fn() + .mockImplementation(({ children }: { children: ReactNode }) => ( +
{children}
+ )); +}); + +jest.mock('../../components/Webhooks/Webhooks', () => { + return jest.fn().mockImplementation(() =>
WebhooksComponent
); +}); + +jest.mock('../../axiosAPIs/webhookAPI', () => ({ + deleteWebhook: jest.fn(), + getWebhooks: jest.fn().mockImplementation(() => Promise.resolve()), +})); + +describe('Test WebhooksPage component', () => { + it('WebhooksPage component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const PageContainerV1 = await findByTestId(container, 'PageContainerV1'); + const WebhooksComponent = await findByText(container, /WebhooksComponent/i); + + expect(PageContainerV1).toBeInTheDocument(); + expect(WebhooksComponent).toBeInTheDocument(); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.test.tsx new file mode 100644 index 00000000000..f5724ad1edc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.test.tsx @@ -0,0 +1,42 @@ +import { findAllByTestId, findByTestId, render } from '@testing-library/react'; +import React, { ReactNode } from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import { LOGIN_SLIDE } from '../../constants/login.const'; +import LoginCarousel from './LoginCarousel'; + +jest.mock('react-slick', () => { + return jest + .fn() + .mockImplementation(({ children }: { children: ReactNode }) => ( +
{children}
+ )); +}); + +describe('Test LoginCarousel component', () => { + it('LoginCarousel component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const reactSlick = await findByTestId(container, 'react-slick'); + const carouselContainer = await findByTestId( + container, + 'carousel-container' + ); + const sliderContainer = await findAllByTestId( + container, + 'slider-container' + ); + const descriptions = await findAllByTestId( + container, + 'carousel-slide-description' + ); + + expect(reactSlick).toBeInTheDocument(); + expect(carouselContainer).toBeInTheDocument(); + expect(sliderContainer.length).toBe(LOGIN_SLIDE.length); + expect(descriptions.map((d) => d.textContent)).toEqual( + LOGIN_SLIDE.map((d) => d.description) + ); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.tsx index 07c00c3d5c2..dfdbeb81103 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/login/LoginCarousel.tsx @@ -21,15 +21,17 @@ import { const LoginCarousel = () => { return ( -
+
{LOGIN_SLIDE.map((data) => ( -
+
slider
-

+

{data.description}

diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx index 13cfcfe4f25..68d0a01875f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx @@ -14,8 +14,8 @@ jest.mock('../../components/common/editor/MarkdownWithPreview', () => { return jest.fn().mockReturnValue(
MarkdownWithPreview component
); }); -describe('Test RolesPage component', () => { - it('RolesPage component should render properly', async () => { +describe('Test TagsPage form component', () => { + it('Form component should render properly', async () => { const { container } = render(
, { diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx new file mode 100644 index 00000000000..ecc282bdb7a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx @@ -0,0 +1,41 @@ +import { findByTestId, findByText, render } from '@testing-library/react'; +import React from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import Form from './Form'; + +const mockFunction = jest.fn(); + +jest.mock('../../components/common/editor/MarkdownWithPreview', () => { + return jest.fn().mockReturnValue(
MarkdownWithPreview component
); +}); + +describe('Test TeamsPage Form component', () => { + it('Form component should render properly', async () => { + const { container } = render( + , + { + wrapper: MemoryRouter, + } + ); + + const name = await findByTestId(container, 'name'); + const displayName = await findByTestId(container, 'displayName'); + + expect(name).toBeInTheDocument(); + expect(displayName).toBeInTheDocument(); + expect( + await findByText(container, /MarkdownWithPreview component/i) + ).toBeInTheDocument(); + }); +}); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx index f1c154f8e77..c0468960a6a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx @@ -87,6 +87,7 @@ const Form: React.FC = forwardRef( = forwardRef( { + return jest.fn().mockReturnValue(
NavBarComponent
); +}); + +jest.mock('../../components/tour/Tour', () => { + return jest.fn().mockReturnValue(
TourComponent
); +}); + +jest.mock('../../components/MyData/MyData.component', () => { + return jest.fn().mockReturnValue(
MyDataComponent
); +}); + +jest.mock('../../components/MyData/MyData.component', () => { + return jest.fn().mockReturnValue(
MyDataComponent
); +}); + +jest.mock('../../components/Explore/Explore.component', () => { + return jest.fn().mockReturnValue(
ExploreComponent
); +}); + +jest.mock('../../components/DatasetDetails/DatasetDetails.component', () => { + return jest.fn().mockReturnValue(
DatasetDetailsComponent
); +}); + +jest.mock('../../AppState', () => { + return jest.fn().mockReturnValue({ + isTourOpen: false, + currentTourPage: CurrentTourPageType.MY_DATA_PAGE, + activeTabforTourDatasetPage: 1, + }); +}); + +describe('Test TourPage component', () => { + it('TourPage component should render properly', async () => { + const { container } = render(, { + wrapper: MemoryRouter, + }); + + const navBar = await findByText(container, /NavBarComponent/i); + const TourComponent = await findByText(container, /NavBarComponent/i); + + expect(navBar).toBeInTheDocument(); + expect(TourComponent).toBeInTheDocument(); + }); +});