import React from 'react'; import { describe, it, expect, vi } from 'vitest'; import { fireEvent, render, screen } from '@testing-library/react'; import { SidebarEntityList } from '../../../src/renderer/components/Sidebar/SidebarEntityList'; describe('SidebarEntityList', () => { it('renders loading state with header', () => { render( null} />, ); expect(screen.getByText('Header')).toBeInTheDocument(); expect(screen.getByText('Loading...')).toBeInTheDocument(); }); it('renders empty state and triggers empty action', () => { const onEmptyAction = vi.fn(); render( null} />, ); fireEvent.click(screen.getByRole('button', { name: 'Create first' })); expect(onEmptyAction).toHaveBeenCalledTimes(1); }); it('renders rows and create button action', () => { const onCreate = vi.fn(); render( item.id} renderItem={(item) =>
{item.id}
} />, ); expect(screen.getByText('a')).toBeInTheDocument(); fireEvent.click(screen.getByRole('button', { name: 'Create' })); expect(onCreate).toHaveBeenCalledTimes(1); }); });