-
mateusz-winiarczyk authoredmateusz-winiarczyk authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TabButton.component.test.tsx 1.26 KiB
import { RenderResult, fireEvent, render, screen } from '@testing-library/react';
import { TabButton } from './TabButton.component';
const mockHandleChangeTab = jest.fn();
const renderTabButton = (label: string, active = false): RenderResult =>
render(<TabButton label={label} handleChangeTab={mockHandleChangeTab} active={active} />);
describe('TabButton - component', () => {
it('should render TabButton with custom label', () => {
renderTabButton('Map');
expect(screen.getByText('Map')).toBeInTheDocument();
});
it('should handle click event', () => {
renderTabButton('Network');
fireEvent.click(screen.getByText('Network'));
expect(mockHandleChangeTab).toHaveBeenCalled();
});
it('should indicate active tab correctly', () => {
renderTabButton('Graphics', true);
const currentTab = screen.getByRole('button', { current: true });
expect(currentTab).toHaveTextContent('Graphics');
});
it('should indicate not active tab correctly', () => {
renderTabButton('Graphics');
const activeTab = screen.queryByRole('button', { current: true });
const graphicsTab = screen.getByRole('button', { current: false });
expect(activeTab).not.toBeInTheDocument();
expect(graphicsTab).toHaveTextContent('Graphics');
});
});