import { DropdownItem } from '../../Dropdown';
import { render, screen } from '@testing-library/react';
import React from 'react';
jest.mock('../../Menu');
const dropdownItemChildren =
Dropdown Item children
;
test('renders dropdown item', () => {
render(
{dropdownItemChildren}
);
expect(screen.getByTestId('dropdown-item').children[0]).toBeVisible();
});
test('passes children', () => {
render({dropdownItemChildren});
expect(screen.getByText('Dropdown Item children')).toBeVisible();
});
test('passes no class name by default', () => {
render({dropdownItemChildren});
expect(screen.getByTestId('menu-item-mock')).not.toHaveClass();
});
test('passes custom class name to MenuItem', () => {
render({dropdownItemChildren});
expect(screen.getByTestId('menu-item-mock')).toHaveClass('custom-class');
});
test('passes no description by default', () => {
render({dropdownItemChildren});
expect(screen.getByText('description: undefined')).toBeVisible();
});
test('passes custom description to MenuItem', () => {
render({dropdownItemChildren});
expect(screen.getByText('description: Test description')).toBeVisible();
});
test('passes no itemId by default', () => {
render({dropdownItemChildren});
expect(screen.getByText('itemId: undefined'));
});
test('passes itemId to MenuItem', () => {
render(
{dropdownItemChildren}
);
expect(screen.getByText('itemId: dropdown item'));
});
test('matches snapshot', () => {
const { asFragment } = render(
{dropdownItemChildren}
);
expect(asFragment()).toMatchSnapshot();
});