Move stories and tests inside each component folders
This commit is contained in:
20
front/src/layout/navbar/__stories__/NavItem.stories.tsx
Normal file
20
front/src/layout/navbar/__stories__/NavItem.stories.tsx
Normal file
@ -0,0 +1,20 @@
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
|
||||
import NavItem from '../../../layout/navbar/NavItem';
|
||||
|
||||
export default {
|
||||
title: 'NavItem',
|
||||
component: NavItem,
|
||||
};
|
||||
|
||||
export const NavItemDefault = () => (
|
||||
<MemoryRouter>
|
||||
<NavItem label="Test" to="/test" />
|
||||
</MemoryRouter>
|
||||
);
|
||||
|
||||
export const NavItemActive = () => (
|
||||
<MemoryRouter initialEntries={['/test']}>
|
||||
<NavItem label="Test" to="/test" active={true} />
|
||||
</MemoryRouter>
|
||||
);
|
||||
14
front/src/layout/navbar/__stories__/Navbar.stories.tsx
Normal file
14
front/src/layout/navbar/__stories__/Navbar.stories.tsx
Normal file
@ -0,0 +1,14 @@
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
|
||||
import Navbar from '../Navbar';
|
||||
|
||||
export default {
|
||||
title: 'Navbar',
|
||||
component: Navbar,
|
||||
};
|
||||
|
||||
export const NavbarOnInsights = () => (
|
||||
<MemoryRouter initialEntries={['/insights']}>
|
||||
<Navbar />
|
||||
</MemoryRouter>
|
||||
);
|
||||
19
front/src/layout/navbar/__tests__/NavItem.test.tsx
Normal file
19
front/src/layout/navbar/__tests__/NavItem.test.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import { render, fireEvent } from '@testing-library/react';
|
||||
|
||||
import { NavItemDefault } from '../__stories__/NavItem.stories';
|
||||
|
||||
const mockedNavigate = jest.fn();
|
||||
jest.mock('react-router-dom', () => ({
|
||||
...jest.requireActual('react-router-dom'),
|
||||
useNavigate: () => mockedNavigate,
|
||||
}));
|
||||
|
||||
it('Checks the NavItem renders', () => {
|
||||
const { getByRole } = render(<NavItemDefault />);
|
||||
|
||||
const button = getByRole('button');
|
||||
expect(button).toHaveTextContent('Test');
|
||||
|
||||
fireEvent.click(button);
|
||||
expect(mockedNavigate).toHaveBeenCalledWith('/test');
|
||||
});
|
||||
17
front/src/layout/navbar/__tests__/Navbar.test.tsx
Normal file
17
front/src/layout/navbar/__tests__/Navbar.test.tsx
Normal file
@ -0,0 +1,17 @@
|
||||
import { render } from '@testing-library/react';
|
||||
|
||||
import { NavbarOnInsights } from '../__stories__/Navbar.stories';
|
||||
|
||||
it('Checks the NavItem renders', () => {
|
||||
const { getByRole } = render(<NavbarOnInsights />);
|
||||
|
||||
expect(getByRole('button', { name: 'Insights' })).toHaveAttribute(
|
||||
'aria-selected',
|
||||
'true',
|
||||
);
|
||||
|
||||
expect(getByRole('button', { name: 'Inbox' })).toHaveAttribute(
|
||||
'aria-selected',
|
||||
'false',
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user