import * as React from 'react'; import { isConformant, handlesAccessibility, getRenderedAttribute } from 'test/specs/commonTests'; import { mountWithProviderAndGetComponent } from 'test/utils'; import { TableCell } from 'src/components/Table/TableCell'; import { TableRow } from 'src/components/Table/TableRow'; describe('TableRow', () => { isConformant(TableRow, { constructorName: 'TableRow' }); describe('accessiblity', () => { handlesAccessibility(TableRow, { defaultRootRole: 'row' }); }); const items = [ { content: '1', key: '1-1' }, { content: 'Roman van von der Longername', key: '1-2', }, { content: 'None', key: '1-3' }, { content: '30 years', key: '1-4' }, ]; it('renders as `div`', () => { const tableRow = mountWithProviderAndGetComponent(TableRow, ) .find('.ui-table__row') .hostNodes(); expect(tableRow.is('div')).toBe(true); }); describe('items', () => { it('render children', () => { const tableRow = mountWithProviderAndGetComponent(TableRow, ) .find('.ui-table__row') .hostNodes(); const tableCells = tableRow.find(TableCell); expect(tableCells.length).toBe(4); expect(tableCells.first().props().content).toBe('1'); expect(tableCells.last().props().content).toBe('30 years'); }); it('does not render empty children', () => { const tableRow = mountWithProviderAndGetComponent(TableRow, ) .find('.ui-table__row') .hostNodes(); const tableCells = tableRow.find(TableCell); expect(tableCells.length).toBe(0); }); }); describe('header', () => { it('render columnheader role when is true', () => { const tableRow = mountWithProviderAndGetComponent(TableRow, ) .find('.ui-table__row') .hostNodes(); const tableCells = tableRow.find(TableCell); expect(tableCells.length).toBe(4); expect(getRenderedAttribute(tableCells.first(), 'role', '')).toBe('columnheader'); expect(getRenderedAttribute(tableCells.last(), 'role', '')).toBe('columnheader'); }); it('not render columnheader cells when is false', () => { const tableRow = mountWithProviderAndGetComponent(TableRow, ) .find('.ui-table__row') .hostNodes(); const tableCells = tableRow.find(TableCell); expect(tableCells.length).toBe(4); expect(getRenderedAttribute(tableCells.first(), 'role', '')).not.toBe('columnheader'); expect(getRenderedAttribute(tableCells.last(), 'role', '')).not.toBe('columnheader'); }); }); });