import { describe, expect, it, vi } from 'vitest' import { fireEvent, renderWithProviders, screen } from '../../../test/utils' import CompactDocumentRow from './CompactDocumentRow' describe('CompactDocumentRow', () => { it('resolves title from title, filename, then File', () => { const { rerender } = renderWithProviders( ) expect(screen.getByText('Custom')).toBeInTheDocument() rerender() expect(screen.getByText('name.pdf')).toBeInTheDocument() rerender() expect(screen.getByText('File')).toBeInTheDocument() }) it('renders metadata only when it has a value and defaults MIME type', () => { const { container, rerender } = renderWithProviders( ) expect(screen.getByText('PDF · 1.0 KB')).toBeInTheDocument() rerender( ) expect(screen.queryByText(/·/)).toBeNull() const genericIconMarkup = container.querySelector('svg')?.innerHTML rerender( ) expect(container.querySelector('svg')?.innerHTML).not.toBe( genericIconMarkup ) }) it('maps variant classes across metadata, icon, and activation', () => { const onActivate = vi.fn() const { container, rerender } = renderWithProviders( ) const darkMetadata = screen.getByText('PDF').className const darkIconTile = container.querySelector('div[aria-hidden]') const darkTileClasses = darkIconTile?.className const darkIconClasses = darkIconTile ?.querySelector('svg') ?.getAttribute('class') expect(screen.getByRole('button', { name: 'Open report' })).toHaveClass( 'hover:bg-white/[0.04]' ) rerender( ) expect(screen.getByText('PDF').className).not.toBe(darkMetadata) const lightIconTile = container.querySelector('div[aria-hidden]') expect(lightIconTile?.className).not.toBe(darkTileClasses) expect(lightIconTile?.querySelector('svg')?.getAttribute('class')).not.toBe( darkIconClasses ) expect(screen.getByRole('button', { name: 'Open report' })).toHaveClass( 'hover:bg-black/[0.04]' ) }) it('activates its body without nesting the trailing action', () => { const onActivate = vi.fn() renderWithProviders( Download} /> ) const body = screen.getByRole('button', { name: 'Open report' }) expect(body).toBeInTheDocument() expect(body).not.toContainElement( screen.getByRole('button', { name: 'Download' }) ) fireEvent.click(body) expect(onActivate).toHaveBeenCalledOnce() }) it('renders a plain body when activation is omitted', () => { renderWithProviders( ) expect(screen.queryByRole('button', { name: /report/ })).toBeNull() }) })