import { Sentiment } from '../common'; import { render, screen, mockMatchMedia } from '../test-utils'; import InlineAlert from './InlineAlert'; mockMatchMedia(); describe('InlineAlert', () => { const message = 'Your card is on its way.'; describe('defaults', () => { it('the message is rendered', () => { render({message}); expect(screen.getByText(message)).toBeInTheDocument(); }); it('will be of type neutral', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-neutral'); }); }); describe('render with types', () => { it('renders info', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-info'); expect(screen.queryByTestId('status-icon')).not.toBeInTheDocument(); }); it('renders neutral', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-neutral'); expect(screen.queryByTestId('status-icon')).not.toBeInTheDocument(); }); it('renders success', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-success'); expect(screen.getByTestId('status-icon')).toBeInTheDocument(); }); it('renders positive', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-positive'); expect(screen.getByTestId('status-icon')).toBeInTheDocument(); }); it('renders error as danger', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-danger'); expect(screen.getByTestId('status-icon')).toBeInTheDocument(); }); it('renders negative as danger', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-danger'); expect(screen.getByTestId('status-icon')).toBeInTheDocument(); }); it('renders warning', () => { render({message}); const component = screen.getByRole('alert'); expect(component).toHaveClass('alert-warning'); expect(screen.getByTestId('status-icon')).toBeInTheDocument(); }); }); describe('other props', () => { it('should respect `iconLabel` override', () => { const customLabel = 'Custom Label'; render( {message} , ); expect(screen.getByLabelText(customLabel)).toBeInTheDocument(); }); }); });