/* 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 { BannerAlert, BANNER_ALERT_SEVERITIES } from '.'; describe('BannerAlert', () => { it('should render BannerAlert element correctly', () => { const { getByTestId, container } = render( should render BannerAlert element correctly , ); expect(getByTestId('bannerAlert')).toHaveClass('mm-banner-alert'); expect(container).toMatchSnapshot(); }); it('should render with added classname', () => { const { getByTestId } = render( should render BannerAlert element correctly , ); expect(getByTestId('bannerAlert')).toHaveClass('mm-banner-alert--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-alert--severity-info'); expect(getByTestId('warning')).toHaveClass( 'mm-banner-alert--severity-warning', ); expect(getByTestId('danger')).toHaveClass( 'mm-banner-alert--severity-danger', ); expect(getByTestId('success')).toHaveClass( 'mm-banner-alert--severity-success', ); }); it('should render BannerAlert title', () => { const { getByText } = render( , ); expect(getByText('BannerAlert title test')).toHaveClass( 'mm-banner-base__title', ); }); it('should render BannerAlert description', () => { const { getByText } = render( , ); expect(getByText('BannerAlert description test')).toBeDefined(); }); it('should render BannerAlert 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); }); });