Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ciremusyoka committed Apr 29, 2024
1 parent 3db126d commit 99a34bd
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { PageHeader, PageHeaderProps } from '@ant-design/pro-layout';
import { Link, useHistory } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { useTranslation } from '../../../mls';
import { Breadcrumb } from 'antd';
import { BreadcrumbProps } from 'antd/es/breadcrumb';

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import React from 'react';
import { RichPageHeader } from '..';
import { render, cleanup, screen } from '@testing-library/react';
import { Router } from 'react-router';
import { createBrowserHistory } from 'history';
import userEvent from '@testing-library/user-event';

const history = createBrowserHistory();

const ComponentWrapper = (props) => {
return (
<Router history={history}>
<RichPageHeader {...props} />
</Router>
);
};

afterEach(() => {
jest.resetAllMocks();
jest.clearAllMocks();
jest.restoreAllMocks();
});

afterAll(() => {
cleanup();
});

it('Renders as expected', async () => {
const backBtnSpy = jest.spyOn(history, 'goBack');
const pageURL = '/test/page';
history.push(pageURL);
render(<ComponentWrapper />);

const container = document.querySelector('.ant-page-header');
const breadCrumbElement = container?.querySelector('.ant-breadcrumb');
expect(screen.getByText(/View details/)).toBeInTheDocument();
expect(breadCrumbElement).toBeNull();

expect(history.location.pathname).toEqual(pageURL);

const backBtn = screen.getByRole('button');
userEvent.click(backBtn);
expect(backBtnSpy).toBeCalledTimes(1);
});

it('Renders as expected with props', async () => {
const prevPageURL = '/users';
const pageURL = `${prevPageURL}/details`;
const breadCrumbProps = {
items: [
{
title: 'Users',
path: prevPageURL,
},
{
title: 'User details',
},
],
};
const pageHeaderProps = {
subTitle: '1234',
};
const richPageHeaderProps = {
pageHeaderProps,
breadCrumbProps,
};
history.push(pageURL);
render(<ComponentWrapper {...richPageHeaderProps} />);

expect(screen.getByText(/View details/)).toBeInTheDocument();
expect(screen.getByText(/123/)).toBeInTheDocument();
expect(screen.getByText(/User details/)).toBeInTheDocument();

expect(history.location.pathname).toEqual(pageURL);

const usersLink = screen.getByRole('link', { name: /Users/i });
userEvent.click(usersLink);
expect(history.location.pathname).toEqual(prevPageURL);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react';
import { SimplePageHeader } from '..';
import { render, cleanup, screen } from '@testing-library/react';

afterAll(() => {
cleanup();
});

it('Renders as expected', async () => {
const title = 'Test Page';
render(<SimplePageHeader title={title} />);

expect(screen.getByText(title)).toBeInTheDocument();
});

0 comments on commit 99a34bd

Please sign in to comment.