// @vitest-environment jsdom import { cleanup, fireEvent, render, screen } from '@testing-library/react'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { en } from '../i18n/en'; import { ErrorView } from './ErrorView'; import { ProcessingView } from './ProcessingView'; afterEach( cleanup ); describe( 'ErrorView', () => { it( 'shows recovery guidance and forwards retry and close', () => { const retry = vi.fn(); const close = vi.fn(); render( ); expect( screen.getByText( 'Network failed' ) ).toBeTruthy(); expect( screen.getAllByRole( 'listitem' ) ).toHaveLength( 3 ); fireEvent.click( screen.getByRole( 'button', { name: en.error.tryAgain } ) ); fireEvent.click( screen.getByRole( 'button', { name: en.error.close } ) ); expect( retry ).toHaveBeenCalledOnce(); expect( close ).toHaveBeenCalledOnce(); } ); } ); describe( 'ProcessingView', () => { it( 'does not render an empty garment preview', () => { render( ); expect( screen.queryByRole( 'img' ) ).toBeNull(); } ); } );