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