import * as React from 'react';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { Alert } from '../../Alert';
import { AlertGroup } from '../../Alert';
import { AlertActionCloseButton } from '../../../components/Alert/AlertActionCloseButton';
describe('AlertGroup', () => {
test('Alert Group renders without children', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
test('Alert Group works with n children', () => {
const { asFragment } = render(
);
expect(asFragment()).toBeTruthy();
});
test('Alert group overflow shows up', async () => {
const overflowMessage = 'View 2 more alerts';
const onOverflowClick = jest.fn();
const user = userEvent.setup();
render(
);
expect(screen.getAllByRole('listitem')).toHaveLength(2);
const overflowButton = screen.getByRole('button', { name: 'View 2 more alerts' });
expect(overflowButton).toBeInTheDocument();
await user.click(overflowButton);
expect(onOverflowClick).toHaveBeenCalled();
});
test('Standard Alert Group is not a toast alert group', () => {
render(
);
expect(screen.getByText('alert title').parentElement).not.toHaveClass('pf-m-toast');
});
test('Toast Alert Group contains expected modifier class', () => {
render(
);
expect(screen.getByLabelText('group label')).toHaveClass('pf-m-toast');
});
test('alertgroup closes when alerts are closed', async () => {
const onClose = jest.fn();
const user = userEvent.setup();
render(
}
/>
);
await user.click(screen.getByLabelText('Close'));
expect(onClose).toHaveBeenCalled();
});
});