import { render, screen } from '@testing-library/react';
import { ErrorState } from './ErrorState';

vi.mock('@/assets/warning.svg', () => ({ default: 'warning.svg' }));

describe('<ErrorState>', () => {
    it('should render icon', () => {
        render(<ErrorState title="Error" />);

        expect(screen.getByRole('presentation')).toBeVisible();
        expect(screen.getByRole('presentation')).toHaveAttribute(
            'src',
            expect.stringMatching(/warning.svg/)
        );
    });

    it('should render title', () => {
        render(<ErrorState title="Something went wrong" />);

        expect(screen.getByText('Something went wrong')).toBeVisible();
    });

    it('should render message when provided', () => {
        render(<ErrorState title="Error" message="Profile not found" />);

        expect(screen.getByText('Profile not found')).toBeVisible();
    });

    it('should render action when provided', () => {
        render(<ErrorState title="Error" action={<button>Retry</button>} />);

        expect(screen.getByRole('button', { name: 'Retry' })).toBeVisible();
    });
});
