mirror of
https://github.com/Nezumi-2711/react-training.git
synced 2026-09-22 20:01:59 +00:00
40 lines
989 B
TypeScript
40 lines
989 B
TypeScript
import { BrowserRouter, useNavigate } from 'react-router-dom';
|
|
import { fireEvent, render } from '@testing-library/react';
|
|
|
|
// Components
|
|
import Sidebar from '.';
|
|
|
|
// Mock useNavigate hook
|
|
jest.mock('react-router-dom', () => ({
|
|
...jest.requireActual('react-router-dom'),
|
|
useNavigate: jest.fn(),
|
|
}));
|
|
|
|
describe('Sidebar', () => {
|
|
const wrapper = render(
|
|
<BrowserRouter>
|
|
<Sidebar heading="Hotel Management" />
|
|
</BrowserRouter>
|
|
);
|
|
|
|
test('Should render correctly', () => {
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
test('On click to heading should be navigate', () => {
|
|
const mockNavigate = jest.fn();
|
|
(useNavigate as jest.Mock).mockReturnValue(mockNavigate);
|
|
|
|
const wrapper = render(
|
|
<BrowserRouter>
|
|
<Sidebar heading="Hotel Management" />
|
|
</BrowserRouter>
|
|
);
|
|
|
|
const headingElement = wrapper.getByText('Hotel Management');
|
|
fireEvent.click(headingElement);
|
|
|
|
expect(mockNavigate).toHaveBeenCalledWith('/');
|
|
});
|
|
});
|