Replace reactable with DataTable from superset-ui in QueryTable (#10981)

* Replace reactable with DataTable from superset-ui in QueryTable

* Fix tests

* Fix pagination

* Fix tests
This commit is contained in:
Kamil Gabryjelski
2020-09-22 22:24:30 +02:00
committed by GitHub
parent 9f01a7fdf8
commit e93d92e8ac
3 changed files with 36 additions and 19 deletions

View File

@@ -18,27 +18,33 @@
*/
import React from 'react';
import { shallow } from 'enzyme';
import { Table } from 'reactable-arc';
import DataTable from '@superset-ui/plugin-chart-table/lib/DataTable';
import * as useMountedMemo from '@superset-ui/plugin-chart-table/lib/DataTable/utils/useMountedMemo';
import QueryTable from 'src/SqlLab/components/QueryTable';
import { queries } from './fixtures';
import { dataTableProps } from 'spec/javascripts/sqllab/fixtures';
describe('QueryTable', () => {
// hack for mocking hook that implements sticky behaviour of DataTable
jest
.spyOn(useMountedMemo, 'default')
.mockImplementation(() => ({ width: 100, height: 100 }));
const mockedProps = {
queries,
...dataTableProps,
displayLimit: 10000,
};
it('is valid', () => {
expect(React.isValidElement(<QueryTable />)).toBe(true);
expect(React.isValidElement(<QueryTable {...mockedProps} />)).toBe(true);
});
it('is valid with props', () => {
expect(React.isValidElement(<QueryTable {...mockedProps} />)).toBe(true);
});
it('renders a proper table', () => {
const wrapper = shallow(<QueryTable {...mockedProps} />);
expect(wrapper.find(Table)).toExist();
expect(wrapper.find(Table).shallow().find('table')).toExist();
expect(wrapper.find(Table).shallow().find('table').find('Tr')).toHaveLength(
2,
);
expect(wrapper.find(DataTable)).toExist();
expect(wrapper.find(DataTable).shallow().find('table')).toExist();
expect(
wrapper.find(DataTable).shallow().find('tbody').find('tr'),
).toHaveLength(2);
});
});