import { render, screen, fireEvent } from '@testing-library/react';
import NavItem from './NavItem';
import { HeaderItem } from '@lmig/lmds-react';
import Link from 'next/link';
jest.mock('@lmig/lmds-react', () => ({
HeaderItem: ({ children }) => <div>{children}</div>,
}));
jest.mock('next/link', () => {
return ({ children, href, className, onClick }) => (
<a href={href} className={className} onClick={onClick}>
{children}
</a>
);
});
describe('NavItem Component', () => {
const setOverlayOpenMock = jest.fn();
beforeEach(() => {
render(<NavItem href="/test" pathname="/test" setOverlayOpen={setOverlayOpenMock} text="Test Link" />);
});
test('renders NavItem with correct text', () => {
expect(screen.getByText('Test Link')).toBeInTheDocument();
});
test('applies active class when pathname matches href', () => {
const linkElement = screen.getByText('Test Link');
expect(linkElement).toHaveClass(''); // Adjust based on your styles
});
test('calls setOverlayOpen with false on click', () => {
const linkElement = screen.getByText('Test Link');
fireEvent.click(linkElement);
expect(setOverlayOpenMock).toHaveBeenCalledWith(false);
});
});