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