import { screen } from '@testing-library/react' import { expect, test, vi } from 'vitest' import Results from '@/components/interfaces/SQLEditor/UtilityPanel/Results' import { customRender as render } from '@/tests/lib/custom-render' let contextMenuMountCount = 0 vi.mock('ui', async () => { const actual = await vi.importActual('ui') return { ...actual, ContextMenu: (props: any) => { contextMenuMountCount++ return }, } }) vi.mock('react-data-grid', () => ({ default: ({ columns, rows }: any) => (
{columns.map((col: any, colIdx: number) => (
{col.renderHeaderCell ? col.renderHeaderCell({}) : col.name}
))}
{rows.map((row: any, rowIdx: number) => (
{columns.map((col: any, colIdx: number) => (
{col.renderCell?.({ row, rowIdx, isCellSelected: false })}
))}
))}
), })) function generateRows(count: number) { return Array.from({ length: count }, (_, i) => ({ id: i, name: `row-${i}`, })) } test('renders a single context menu regardless of row count', () => { contextMenuMountCount = 0 const rows = generateRows(100) render() expect(contextMenuMountCount).toBe(1) }) test('shows empty state when no rows provided', () => { render() expect(screen.getByText('Success. No rows returned')).toBeTruthy() })