diff --git a/src/components/ColumnMenu/ColumnMenu.test.tsx b/src/components/ColumnMenu/ColumnMenu.test.tsx index 48475040..f23c78c5 100644 --- a/src/components/ColumnMenu/ColumnMenu.test.tsx +++ b/src/components/ColumnMenu/ColumnMenu.test.tsx @@ -45,11 +45,9 @@ describe('ColumnMenu', () => { const { getByRole, getByText } = render() const menu = getByRole('menu') - expect(menu).toBeDefined() const ariaLabelledBy = menu.getAttribute('aria-labelledby') - expect(ariaLabelledBy).toBeDefined() + expect(ariaLabelledBy).toBeTruthy() const labelElement = getByText('Test Column') - expect(labelElement).toBeDefined() expect(labelElement.getAttribute('id')).toBe(ariaLabelledBy) }) @@ -75,7 +73,7 @@ describe('ColumnMenu', () => { const { container } = render() const overlay = container.querySelector('[role="presentation"]') - expect(overlay).toBeDefined() + expect(overlay).toBeTruthy() }) }) @@ -86,7 +84,6 @@ describe('ColumnMenu', () => { ) const sortButton = getByRole('menuitem') - expect(sortButton).toBeDefined() expect(sortButton.textContent).toBe('No sort') }) @@ -127,7 +124,6 @@ describe('ColumnMenu', () => { ) const hideOption = getByText('Hide column') - expect(hideOption).toBeDefined() hideOption.click() expect(hideColumn).toHaveBeenCalled() }) @@ -142,7 +138,6 @@ describe('ColumnMenu', () => { ) const showOption = getByText('Show all columns') - expect(showOption).toBeDefined() showOption.click() expect(showAllColumns).toHaveBeenCalled() }) @@ -160,8 +155,8 @@ describe('ColumnMenu', () => { showAllColumns={showAllColumns} /> ) - expect(getByText('Hide column')).toBeDefined() - expect(getByText('Show all columns')).toBeDefined() + getByText('Hide column') + getByText('Show all columns') }) }) @@ -247,7 +242,6 @@ describe('ColumnMenu', () => { await user.keyboard('{ArrowUp}') // Navigation should be handled (no specific assertion as useFocusManagement is mocked) - expect(menu).toBeDefined() }) it('handles ArrowDown key', async () => { @@ -258,8 +252,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('{ArrowDown}') - - expect(menu).toBeDefined() }) it('handles ArrowLeft key', async () => { @@ -270,8 +262,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('{ArrowLeft}') - - expect(menu).toBeDefined() }) it('handles ArrowRight key', async () => { @@ -282,8 +272,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('{ArrowRight}') - - expect(menu).toBeDefined() }) }) @@ -297,8 +285,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('{Tab}') - - expect(menu).toBeDefined() }) it('handles Shift+Tab key', async () => { @@ -309,8 +295,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('{Shift>}{Tab}{/Shift}') - - expect(menu).toBeDefined() }) }) @@ -324,7 +308,6 @@ describe('ColumnMenu', () => { menu.focus() await user.keyboard('{Home}') // Navigation should be handled (no specific assertion as useFocusManagement is mocked) - expect(menu).toBeDefined() }) it('handles End key', async () => { const { user, getByRole } = render( @@ -334,7 +317,6 @@ describe('ColumnMenu', () => { menu.focus() await user.keyboard('{End}') // Navigation should be handled (no specific assertion as useFocusManagement is mocked) - expect(menu).toBeDefined() }) }) @@ -355,8 +337,6 @@ describe('ColumnMenu', () => { await user.keyboard('{ArrowLeft}') await user.keyboard('{ArrowRight}') await user.keyboard('{Tab}') - - expect(menu).toBeDefined() }) it('handles unknown keys with default prevention', async () => { @@ -365,8 +345,6 @@ describe('ColumnMenu', () => { const menu = getByRole('menu') menu.focus() await user.keyboard('a') - - expect(menu).toBeDefined() }) }) @@ -375,7 +353,7 @@ describe('ColumnMenu', () => { const { user, container } = render() const overlay = container.querySelector('[role="presentation"]') - expect(overlay).toBeDefined() + expect(overlay).toBeTruthy() if (overlay) { await user.click(overlay) @@ -389,7 +367,6 @@ describe('ColumnMenu', () => { const { getByRole } = render() const menu = getByRole('menu') - expect(menu).toBeDefined() // Menu should not be a direct child of the render container // since it's rendered in a portal @@ -403,8 +380,7 @@ describe('ColumnMenu', () => { ) - const menu = getByRole('menu') - expect(menu).toBeDefined() + getByRole('menu') }) it('handles empty column name', () => { @@ -419,7 +395,7 @@ describe('ColumnMenu', () => { } const labelElement = menu.querySelector('[role=presentation]') - expect(labelElement).toBeDefined() + expect(labelElement).toBeTruthy() expect(labelElement?.textContent).toBe('') expect(labelElement?.getAttribute('id')).toBe(id) }) @@ -430,7 +406,7 @@ describe('ColumnMenu', () => { ) - expect(getByText(specialName)).toBeDefined() + getByText(specialName) }) }) }) diff --git a/src/components/ColumnMenuButton/ColumnMenuButton.test.tsx b/src/components/ColumnMenuButton/ColumnMenuButton.test.tsx index ef25f187..550bdb95 100644 --- a/src/components/ColumnMenuButton/ColumnMenuButton.test.tsx +++ b/src/components/ColumnMenuButton/ColumnMenuButton.test.tsx @@ -17,7 +17,6 @@ describe('ColumnMenuButton', () => { const { getByRole } = render() const button = getByRole('button') - expect(button).toBeDefined() expect(button.getAttribute('aria-label')).toBe('Column menu') expect(button.getAttribute('aria-haspopup')).toBe('menu') expect(button.getAttribute('aria-expanded')).toBe('false') @@ -61,7 +60,7 @@ describe('ColumnMenuButton', () => { const { getByTestId } = render( ) - expect(getByTestId('custom-icon')).toBeDefined() + getByTestId('custom-icon') }) it('renders with default icon when no icon provided', () => { @@ -200,7 +199,6 @@ describe('ColumnMenuButton', () => { await user.keyboard('{Enter}') // Should not throw errors - expect(button).toBeDefined() }) it('works without onEscape handler', async () => { @@ -213,7 +211,6 @@ describe('ColumnMenuButton', () => { await user.keyboard('{Escape}') // Should not throw errors - expect(button).toBeDefined() }) it('works without any handlers', async () => { @@ -226,7 +223,6 @@ describe('ColumnMenuButton', () => { await user.keyboard('{Escape}') // Should not throw errors - expect(button).toBeDefined() }) }) }) diff --git a/src/components/HighTable/HighTable.test.tsx b/src/components/HighTable/HighTable.test.tsx index 8765e91f..8ccc39b5 100644 --- a/src/components/HighTable/HighTable.test.tsx +++ b/src/components/HighTable/HighTable.test.tsx @@ -100,7 +100,7 @@ describe('HighTable', () => { it('renders initial rows', async () => { const { getByText } = render() await waitFor(() => { - expect(getByText('ID')).toBeDefined() + getByText('ID') expect(mockData.getCell).toHaveBeenCalledWith({ row: 0, column: 'ID', orderBy: [] }) expect(mockData.getCell).toHaveBeenCalledWith({ row: 23, column: 'Age', orderBy: [] }) expect(mockData.getCell).not.toHaveBeenCalledWith({ row: 24, column: 'Age', orderBy: [] }) @@ -110,7 +110,7 @@ describe('HighTable', () => { it('uses overscan option', async () => { const { getByText } = render() await waitFor(() => { - expect(getByText('ID')).toBeDefined() + getByText('ID') expect(mockData.getCell).toHaveBeenCalledWith({ row: 13, column: 'Age', orderBy: [] }) expect(mockData.getCell).not.toHaveBeenCalledWith({ row: 14, column: 'Age', orderBy: [] }) }) @@ -264,7 +264,7 @@ describe('with async data, HighTable', () => { const asyncData = createAsyncDataFrame() const { getByText } = render() await waitFor(() => { - expect(getByText('ID')).toBeDefined() + getByText('ID') expect(asyncData.fetch).toHaveBeenCalledExactlyOnceWith({ rowStart: 0, rowEnd, columns: ['ID', 'Name', 'Age'], orderBy: [], signal: expect.any(AbortSignal) }) expect(asyncData.getCell).toHaveBeenCalledWith({ row: 0, column: 'ID', orderBy: [] }) expect(asyncData.getCell).toHaveBeenCalledWith({ row: rowEnd - 1, column: 'Age', orderBy: [] }) @@ -278,7 +278,7 @@ describe('with async data, HighTable', () => { const asyncData = createAsyncDataFrame() const { getByText } = render() await waitFor(() => { - expect(getByText('ID')).toBeDefined() + getByText('ID') expect(asyncData.fetch).toHaveBeenCalledExactlyOnceWith({ rowStart: 0, rowEnd, columns: ['ID', 'Name', 'Age'], orderBy: [], signal: expect.any(AbortSignal) }) expect(asyncData.getCell).toHaveBeenCalledWith({ row: rowEnd - 1, column: 'Age', orderBy: [] }) expect(asyncData.getCell).not.toHaveBeenCalledWith({ row: rowEnd, column: 'Age', orderBy: [] }) @@ -291,7 +291,7 @@ describe('with async data, HighTable', () => { // initially, the cell is not there because the data is not fetched yet expect(queryByRole('cell', { name: 'async 0' })).toBeNull() // after some delay, the cell should be there - await expect(findByRole('cell', { name: 'async 0' })).resolves.toBeDefined() + await findByRole('cell', { name: 'async 0' }) }) it('handles scroll to load more rows', async () => { @@ -302,7 +302,7 @@ describe('with async data, HighTable', () => { expect(asyncData.getCell).toHaveBeenCalledWith({ row: 23, column: 'Age', orderBy: [] }) expect(asyncData.getCell).not.toHaveBeenCalledWith({ row: 24, column: 'Age', orderBy: [] }) }) - await expect(findByRole('cell', { name: 'async 0' })).resolves.toBeDefined() + await findByRole('cell', { name: 'async 0' }) expect(queryByRole('cell', { name: 'async 24' })).toBeNull() act(() => { @@ -314,7 +314,7 @@ describe('with async data, HighTable', () => { await waitFor(() => { expect(asyncData.getCell).toHaveBeenCalledWith({ row: 24, column: 'Age', orderBy: [] }) }) - await expect(findByRole('cell', { name: 'async 24' })).resolves.toBeDefined() + await findByRole('cell', { name: 'async 24' }) expect(queryByRole('cell', { name: 'async 50' })).toBeNull() act(() => { @@ -325,7 +325,7 @@ describe('with async data, HighTable', () => { await waitFor(() => { expect(asyncData.getCell).toHaveBeenCalledWith({ row: 50, column: 'Age', orderBy: [] }) }) - await expect(findByRole('cell', { name: 'async 50' })).resolves.toBeDefined() + await findByRole('cell', { name: 'async 50' }) expect(asyncData._forTests.signalAborted).toHaveLength(0) // the fetches are too fast to be cancelled (10ms) }) @@ -408,13 +408,11 @@ describe('When sorted, HighTable', () => { }) function checkRowContents(row: HTMLElement | undefined, rowNumber: string, ID: string, Count: string) { - expect(row).toBeDefined() if (!row) { throw new Error('Row is undefined') } const selectionCell = within(row).getByRole('rowheader') - expect(selectionCell).toBeDefined() expect(selectionCell.textContent).toBe(rowNumber) const columns = within(row).getAllByRole('cell') @@ -426,7 +424,7 @@ describe('When sorted, HighTable', () => { it('shows the rows in the right order', async () => { const { user, findByRole, getByRole, findAllByRole } = render() - expect(getByRole('columnheader', { name: 'ID' })).toBeDefined() + getByRole('columnheader', { name: 'ID' }) await findByRole('cell', { name: 'row 0' }) const table = getByRole('grid') // not table! because the table is interactive. See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/grid_role @@ -1170,8 +1168,8 @@ describe('Navigating Hightable with the keyboard', () => { const focusedElement = document.activeElement const rowIndex = focusedElement?.getAttribute('aria-rowindex') const colIndex = focusedElement?.getAttribute('aria-colindex') - expect(rowIndex).toBeDefined() - expect(colIndex).toBeDefined() + expect(rowIndex).toBeTruthy() + expect(colIndex).toBeTruthy() return { rowIndex: Number(rowIndex), colIndex: Number(colIndex) } } @@ -1427,8 +1425,6 @@ describe('When the table scroller is focused', () => { // // // ) - -// expect(getByRole('alert'), 'Something went wrong').toBeDefined() // }) // }) diff --git a/src/components/TableHeader/TableHeader.test.tsx b/src/components/TableHeader/TableHeader.test.tsx index c25d43df..2b592bc9 100644 --- a/src/components/TableHeader/TableHeader.test.tsx +++ b/src/components/TableHeader/TableHeader.test.tsx @@ -38,7 +38,7 @@ describe('TableHeader', () => { /> ) columnsParameters.forEach(descriptor => { - expect(getByText(descriptor.name)).toBeDefined() + getByText(descriptor.name) }) }) @@ -146,7 +146,7 @@ describe('TableHeader', () => { // Test integration: menu is properly labeled by column name const labelId = menu.getAttribute('aria-labelledby') - expect(labelId).toBeDefined() + expect(labelId).toBeTruthy() if (!labelId) throw new Error('labelId should be defined') const label = document.getElementById(labelId) if (!label) throw new Error('label element should exist') @@ -177,10 +177,9 @@ describe('TableHeader', () => { }) await user.click(menuButton) - const menu = getByRole('menu') + getByRole('menu') // Test integration: menu opens within table and can be closed - expect(menu).toBeDefined() await user.click(menuButton) expect(queryByRole('menu')).toBeNull() })