import { fireEvent, render, screen, within } from '@testing-library/react'; import '@testing-library/jest-dom'; import { PreviewAttachment } from './PreviewAttachment'; describe('PreviewAttachment', () => { it('should render PreviewAttachment', () => { render( ); expect(screen.getByText('Preview attachment')).toBeTruthy(); expect(screen.getByText('greetings')).toBeTruthy(); expect(screen.getAllByText('TEXT')).toBeTruthy(); }); it('should call onEdit handler when edit button is pressed', () => { const onEdit = jest.fn(); render( ); fireEvent.click(screen.getByText('Edit')); expect(onEdit).toHaveBeenCalled(); }); it('should call onDismiss handler when dismiss button is pressed', () => { const onDismiss = jest.fn(); render( ); fireEvent.click(screen.getByText('Dismiss')); expect(onDismiss).toHaveBeenCalled(); }); it('should render custom button text for footer actions buttons', () => { render( ); screen.getByText('Edit'); screen.getByText('Close'); }); it('should render PreviewAttachment with custom classNames', async () => { render( ); const modal = screen.getByRole('dialog'); const modalHeader = within(modal).getByRole('banner'); expect(modalHeader).toHaveClass('custom-header-class'); const modalBody = modal.querySelector('#code-modal-body'); expect(modalBody).toHaveClass('custom-body-class'); const modalfooter = within(modal).getByRole('contentinfo'); expect(modalfooter).toHaveClass('custom-footer-class'); }); });