import { fireEvent, render, screen } from '@testing-library/react'
import FileImageRender from './file-image-render'
describe('FileImageRender', () => {
beforeEach(() => {
vi.clearAllMocks()
})
it('should render an image with the given URL', () => {
render()
const img = screen.getByRole('img')
expect(img).toHaveAttribute('src', 'https://example.com/image.png')
})
it('should use default alt text when alt is not provided', () => {
render()
expect(screen.getByAltText('Preview')).toBeInTheDocument()
})
it('should use custom alt text when provided', () => {
render()
expect(screen.getByAltText('Custom alt')).toBeInTheDocument()
})
it('should apply custom className to container', () => {
const { container } = render(
,
)
expect(container.firstChild).toHaveClass('custom-class')
})
it('should call onLoad when image loads', () => {
const onLoad = vi.fn()
render()
fireEvent.load(screen.getByRole('img'))
expect(onLoad).toHaveBeenCalled()
})
it('should call onError when image fails to load', () => {
const onError = vi.fn()
render()
fireEvent.error(screen.getByRole('img'))
expect(onError).toHaveBeenCalled()
})
it('should add cursor-pointer to image when showDownloadAction is true', () => {
render()
const img = screen.getByRole('img')
expect(img).toHaveClass('cursor-pointer')
})
it('should not add cursor-pointer when showDownloadAction is false', () => {
render()
const img = screen.getByRole('img')
expect(img).not.toHaveClass('cursor-pointer')
})
})