import React from 'react'; import { render, shallow, mount } from 'enzyme'; import Table from '..'; const { Column, ColumnGroup } = Table; describe('Table', () => { const warnSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); afterAll(() => { warnSpy.mockRestore(); }); it('renders JSX correctly', () => { const data = [ { key: '1', firstName: 'John', lastName: 'Brown', age: 32, }, { key: '2', firstName: 'Jim', lastName: 'Green', age: 42, }, ]; const wrapper = render(
, ); expect(wrapper).toMatchSnapshot(); }); it('updates columns when receiving props', () => { const columns = [ { title: 'Name', key: 'name', dataIndex: 'name', }, ]; const wrapper = shallow(); const newColumns = [ { title: 'Title', key: 'title', dataIndex: 'title', }, ]; wrapper.setProps({ columns: newColumns }); expect(wrapper.instance().columns).toBe(newColumns); }); it('loading with Spin', async () => { const loading = { spinning: false, delay: 500, }; const wrapper = mount(
); expect(wrapper.find('.ant-spin')).toHaveLength(0); expect(wrapper.find('.ant-table-placeholder').text()).not.toEqual(''); loading.spinning = true; wrapper.setProps({ loading }); expect(wrapper.find('.ant-spin')).toHaveLength(0); await new Promise(resolve => setTimeout(resolve, 500)); wrapper.update(); expect(wrapper.find('.ant-spin')).toHaveLength(1); }); it('renders custom components correctly when it changes', () => { const BodyWrapper1 = props => ; const BodyWrapper2 = props => ; const wrapper = mount(
); wrapper.setProps({ components: { body: { wrapper: BodyWrapper2 } } }); expect(wrapper.find('tbody').props().id).toBe('wrapper2'); }); it('warning if both `expandedRowRender` & `Column.fixed` are used', () => { mount(
null} columns={[{ fixed: true }]} />); expect(warnSpy).toHaveBeenCalledWith( 'Warning: [antd: Table] `expandedRowRender` and `Column.fixed` are not compatible. Please use one of them at one time.', ); }); it('props#columnsPageRange and props#columnsPageSize do not warn anymore', () => { const data = [ { key: '1', age: 32, }, { key: '2', age: 42, }, ]; const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); const columnsPageRange = jest.fn(); const columnsPageSize = jest.fn(); mount(
, ); expect(errorSpy.mock.calls.length).toBe(1); expect(errorSpy.mock.calls[0][0]).not.toContain( '`columnsPageRange` and `columnsPageSize` are removed, please use fixed columns instead, see: https://u.ant.design/fixed-columns.', ); expect(columnsPageRange).not.toHaveBeenCalled(); expect(columnsPageSize).not.toHaveBeenCalled(); }); });