2019-07-22 19:28:23 +08:00
|
|
|
/* eslint-disable react/no-multi-comp */
|
|
|
|
import React from 'react';
|
|
|
|
import { mount } from 'enzyme';
|
|
|
|
import Table from '..';
|
|
|
|
|
2019-09-28 15:22:27 +08:00
|
|
|
const columns = [
|
|
|
|
{
|
|
|
|
title: 'Name',
|
|
|
|
key: 'name',
|
|
|
|
dataIndex: 'name',
|
|
|
|
},
|
|
|
|
];
|
2019-07-22 19:28:23 +08:00
|
|
|
|
2020-01-09 22:44:31 +08:00
|
|
|
const John = {
|
|
|
|
key: '1',
|
|
|
|
firstName: 'John',
|
|
|
|
lastName: 'Brown',
|
|
|
|
age: 32,
|
|
|
|
};
|
|
|
|
|
|
|
|
const Jim = {
|
|
|
|
key: '2',
|
|
|
|
firstName: 'Jim',
|
|
|
|
lastName: 'Green',
|
|
|
|
age: 42,
|
|
|
|
};
|
|
|
|
|
2019-09-28 15:22:27 +08:00
|
|
|
const data = [
|
|
|
|
{
|
2020-01-09 22:44:31 +08:00
|
|
|
...John,
|
2019-07-22 19:28:23 +08:00
|
|
|
|
2019-09-28 15:22:27 +08:00
|
|
|
children: [
|
|
|
|
{
|
2020-01-09 22:44:31 +08:00
|
|
|
...Jim,
|
2019-07-22 19:28:23 +08:00
|
|
|
},
|
2019-09-28 15:22:27 +08:00
|
|
|
],
|
|
|
|
},
|
|
|
|
];
|
2019-07-22 19:28:23 +08:00
|
|
|
|
2019-09-28 15:22:27 +08:00
|
|
|
describe('Table.expand', () => {
|
|
|
|
it('click to expand', () => {
|
2019-07-22 19:28:23 +08:00
|
|
|
const wrapper = mount(<Table columns={columns} dataSource={data} />);
|
|
|
|
wrapper
|
|
|
|
.find('.ant-table-row-expand-icon')
|
|
|
|
.last()
|
|
|
|
.simulate('click');
|
|
|
|
expect(wrapper.render()).toMatchSnapshot();
|
|
|
|
});
|
2019-09-28 15:22:27 +08:00
|
|
|
|
|
|
|
it('should support expandIconColumnIndex', () => {
|
|
|
|
const wrapper = mount(<Table columns={[]} dataSource={data} expandIconColumnIndex={1} />);
|
|
|
|
expect(wrapper.render()).toMatchSnapshot();
|
|
|
|
});
|
2020-01-09 22:44:31 +08:00
|
|
|
|
|
|
|
it('expandRowByClick should not block click icon', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<Table
|
|
|
|
columns={columns}
|
|
|
|
dataSource={[John, Jim]}
|
|
|
|
expandable={{
|
|
|
|
expandRowByClick: true,
|
|
|
|
expandedRowRender: () => '',
|
|
|
|
}}
|
|
|
|
/>,
|
|
|
|
);
|
|
|
|
|
|
|
|
wrapper
|
|
|
|
.find('.ant-table-row-expand-icon')
|
|
|
|
.first()
|
|
|
|
.simulate('click');
|
|
|
|
expect(
|
|
|
|
wrapper
|
|
|
|
.find('.ant-table-row-expand-icon')
|
|
|
|
.first()
|
|
|
|
.hasClass('ant-table-row-expand-icon-expanded'),
|
|
|
|
).toBeTruthy();
|
|
|
|
|
|
|
|
wrapper
|
|
|
|
.find('.ant-table-row-expand-icon')
|
|
|
|
.first()
|
|
|
|
.simulate('click');
|
|
|
|
expect(
|
|
|
|
wrapper
|
|
|
|
.find('.ant-table-row-expand-icon')
|
|
|
|
.first()
|
|
|
|
.hasClass('ant-table-row-expand-icon-collapsed'),
|
|
|
|
).toBeTruthy();
|
|
|
|
});
|
2020-02-01 22:50:58 +08:00
|
|
|
|
|
|
|
it('show expandIcon', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<Table
|
|
|
|
columns={[{ dataIndex: 'key' }]}
|
|
|
|
dataSource={[{ key: 233 }]}
|
|
|
|
expandable={{
|
|
|
|
expandIcon: () => <div className="expand-icon" />,
|
|
|
|
}}
|
|
|
|
/>,
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper.find('.expand-icon')).toHaveLength(1);
|
|
|
|
});
|
2019-07-22 19:28:23 +08:00
|
|
|
});
|