/* eslint-disable jest/require-top-level-describe */ import { render } from '@testing-library/react'; import React from 'react'; import { renderWithUserEvent } from '../../../../test/lib/render-helpers'; import { Banner, BANNER_SEVERITIES } from '.'; describe('Banner', () => { it('should render banner element correctly', () => { const { getByTestId, container } = render( should render banner element correctly , ); expect(getByTestId('banner')).toHaveClass('mm-banner'); expect(container).toMatchSnapshot(); }); it('should render with added classname', () => { const { getByTestId } = render( should render banner element correctly , ); expect(getByTestId('banner')).toHaveClass('mm-banner--test'); }); it('should render with different severity classnames', () => { const { getByTestId } = render( <> This is a demo of severity Info. This is a demo of severity Warning. This is a demo of severity Danger. This is a demo of severity Success. , ); expect(getByTestId('info')).toHaveClass('mm-banner--severity-info'); expect(getByTestId('warning')).toHaveClass('mm-banner--severity-warning'); expect(getByTestId('danger')).toHaveClass('mm-banner--severity-danger'); expect(getByTestId('success')).toHaveClass('mm-banner--severity-success'); }); it('should render banner title', () => { const { getByText } = render(); expect(getByText('Banner title test')).toHaveClass('mm-banner-base__title'); }); it('should render banner description', () => { const { getByText } = render(Banner description test); expect(getByText('Banner description test')).toBeDefined(); }); it('should render banner action button', () => { const { getByTestId } = render( console.log('ButtonLink actionButtonOnClick demo') } > Use actionButtonLabel for action text, actionButtonOnClick for the onClick handler, and actionButtonProps to pass any ButtonLink prop types such as iconName , ); expect(getByTestId('action')).toHaveClass('mm-banner-base__action'); }); it('should render and fire onClose event', async () => { const onClose = jest.fn(); const { user, getByTestId } = renderWithUserEvent( , ); await user.click(getByTestId('close-button')); expect(onClose).toHaveBeenCalledTimes(1); }); });