import * as React from 'react'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { AboutModal, AboutModalProps } from '../AboutModal'; import { KeyTypes } from '../../../helpers'; const props: AboutModalProps = { onClose: jest.fn(), children: 'modal content', productName: 'Product Name', trademark: 'Trademark and copyright information here', brandImageSrc: 'brandImg...', brandImageAlt: 'Brand Image' }; describe('AboutModal', () => { test('closes with escape', async () => { const user = userEvent.setup(); render(); await user.type(screen.getByRole('dialog'), `{${KeyTypes.Escape}}`); expect(props.onClose).toHaveBeenCalled(); }); test('does not render the modal when isOpen is not specified', () => { render(); expect(screen.queryByRole('dialog')).toBeNull(); }); test('Console error is generated when the logoImageSrc is provided without logoImageAlt', () => { const noImgAltrops = { onClose: jest.fn(), children: 'modal content', productName: 'Product Name', trademark: 'Trademark and copyright information here', brandImageSrc: 'brandImg...', logoImageSrc: 'logoImg...' } as any; const myMock = jest.fn() as any; global.console = { error: myMock } as any; render(Test About Modal); expect(myMock).toHaveBeenCalled(); }); test('Console error is generated when the logoImageSrc is provided without logoImageAlt', () => { const noProductNameProps = { onClose: jest.fn(), children: 'modal content', trademark: 'Trademark and copyright information here' } as any; const myMock = jest.fn() as any; global.console = { error: myMock } as any; render(Test About Modal); expect(myMock).toHaveBeenCalled(); }); });