diff --git a/packages/table/src/Table.spec.js b/packages/table/src/Table.spec.js new file mode 100644 index 00000000..5651ea11 --- /dev/null +++ b/packages/table/src/Table.spec.js @@ -0,0 +1,90 @@ +import Table from "./Table"; +import { mount } from 'enzyme'; +import React from 'react'; +import { TABLE_MOCK_COLUMNS, TABLE_MOCK_ROWS, TABLE_MOCK_NESTED_ROWS, TABLE_MOCK_FILTER } from './mocks/Table.mock.js'; +import * as sinon from 'sinon'; + +describe('Table Test', () => { + let component: Table; + + describe('Setup and Teardown', () => { + test('Should create a valid component', () => { + const component = mount( + + ); + + expect(component).toBeDefined(); + }); + + test('Should set an initial state', () => { + const component = mount( +
+ ); + + expect(component).toBeDefined(); + }); + }); + + describe('Data', () => { + test('Should render data', () => { + const component = mount( +
+ ); + + expect(component.find('tbody tr').length).toBe(10); + }); + }); + + describe('Filters', () => { + test('Should render generic filter', () => { + const component = mount( +
+ ); + + expect(component.find(`input[name="${TABLE_MOCK_FILTER[0].id}"]`).props()).toHaveProperty('id', TABLE_MOCK_FILTER[0].id); + }); + + test('Should render optional filters', () => { + const component = mount( +
+ ); + + expect(component.find(`.m-table-filter__optional-filters > *`).length).toBe(4); + }); + }); + + describe('Pagination', () => { + test('Should render pagination', () => { + const component = mount( +
+ ); + + expect(component.find(`.m-pagination`)).toBeDefined() + }); + }); +}); diff --git a/packages/table/src/components/Filter/Filter.js b/packages/table/src/components/Filter/Filter.js index 5eba6519..b79402b2 100644 --- a/packages/table/src/components/Filter/Filter.js +++ b/packages/table/src/components/Filter/Filter.js @@ -24,6 +24,7 @@ const Filter = ({ case "select": return (