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(); }); });