123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- import { Descriptions, Tag } from '../../index';
- import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
- const data = [
- { key: '实际用户数量', value: '1,480,000' },
- { key: '7天留存', value: '98%' },
- { key: '安全等级', value: '3级' },
- { key: '垂类标签', value: <Tag>电商</Tag> },
- { key: '认证状态', value: '未认证' },
- ];
- const dataWithHide = [
- { key: '实际用户数量', value: '1,480,000', hidden: true },
- { key: '7天留存', value: '98%' },
- { key: '安全等级', value: '3级' },
- { key: '垂类标签', value: <Tag style={{ margin: 0 }}>电商</Tag> },
- { key: '认证状态', value: '未认证' },
- ];
- const dataWithKeyIsNode = [
- { key: <strong>实际用户数量</strong>, value: '1,480,000' },
- { key: '7天留存', value: '98%' },
- { key: '安全等级', value: '3级' },
- { key: '垂类标签', value: <Tag>电商</Tag> },
- { key: '认证状态', value: '未认证' },
- ];
- function renderDescriptions(props) {
- const realProps = {
- data,
- ...props,
- };
- return mount(<Descriptions {...realProps}></Descriptions>, {
- attachTo: document.getElementById('container'),
- });
- }
- describe('Descriptions', () => {
- beforeEach(() => {
- const div = document.createElement('div');
- div.setAttribute('id', 'container');
- document.body.appendChild(div);
- });
- afterEach(() => {
- const div = document.getElementById('container');
- if (div) {
- document.body.removeChild(div);
- }
- document.body.innerHTML = '';
- });
- it('Descriptions with data', () => {
- const descriptions = renderDescriptions();
- const item = document.querySelectorAll('tr');
- expect(item.length).toEqual(5);
- expect(
- descriptions
- .find(`.${BASE_CLASS_PREFIX}-descriptions-key`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('实际用户数量');
- expect(
- descriptions
- .find(`.${BASE_CLASS_PREFIX}-descriptions-value`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('1,480,000');
- descriptions.unmount();
- });
- it('Descriptions with className / style', () => {
- const props = {
- className: 'test',
- style: { height: 420 },
- };
- const descriptions = renderDescriptions(props);
- expect(descriptions.hasClass('test')).toEqual(true);
- expect(descriptions.find('div.test')).toHaveStyle('height', 420);
- descriptions.unmount();
- });
- it('Descriptions with align', () => {
- const centerDesc = renderDescriptions({ align: "center" });
- expect(centerDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-center`)).toEqual(true);
- centerDesc.unmount();
- const justifyDesc = renderDescriptions({ align: "justify" });
- expect(justifyDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-justify`)).toEqual(true);
- justifyDesc.unmount();
- const leftDesc = renderDescriptions({ align: "left" });
- expect(leftDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-left`)).toEqual(true);
- leftDesc.unmount();
- const plainDesc = renderDescriptions({ align: "plain" });
- expect(plainDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-plain`)).toEqual(true);
- plainDesc.unmount();
- });
- it('Descriptions with row', () => {
- const rowDesc = renderDescriptions({ row: true });
- expect(rowDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-double`)).toEqual(true);
- rowDesc.unmount();
- });
- it('Descriptions with dataItem hidden', () => {
- const rowDesc = renderDescriptions({ data: dataWithHide });
- const item = document.querySelectorAll('tr');
- expect(item.length).toEqual(4);
- expect(
- rowDesc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-key`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('7天留存');
- expect(
- rowDesc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-value`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('98%');
- rowDesc.unmount();
- });
- it('Descriptions with size', () => {
- const smallDesc = renderDescriptions({ row: true, size: 'small' });
- expect(smallDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-double-small`)).toEqual(true);
- smallDesc.unmount();
- const mediumDesc = renderDescriptions({ row: true, size: 'medium' });
- expect(mediumDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-double-medium`)).toEqual(true);
- mediumDesc.unmount();
- const largeDesc = renderDescriptions({ row: true, size: 'large' });
- expect(largeDesc.exists(`.${BASE_CLASS_PREFIX}-descriptions-double-large`)).toEqual(true);
- largeDesc.unmount();
- });
- it('Descriptions with jsx', () => {
- const desc = mount(
- <Descriptions>
- <Descriptions.Item itemKey="实际用户数量">1,480,000</Descriptions.Item>
- <Descriptions.Item itemKey="7天留存">98%</Descriptions.Item>
- <Descriptions.Item itemKey="安全等级">3级</Descriptions.Item>
- <Descriptions.Item itemKey="垂类标签">电商</Descriptions.Item>
- <Descriptions.Item itemKey="认证状态">未认证</Descriptions.Item>
- </Descriptions>, {
- attachTo: document.getElementById('container'),
- });
- const item = document.querySelectorAll('tr');
- expect(item.length).toEqual(5);
- expect(
- desc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-key`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('实际用户数量');
- expect(
- desc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-value`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('1,480,000');
- desc.unmount();
- });
- it('Descriptions with key is node', () => {
- const desc = renderDescriptions({ data: dataWithKeyIsNode });
- expect(
- desc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-key strong`)
- .at(0)
- .getDOMNode()
- .textContent
- ).toEqual('实际用户数量');
- expect(
- desc
- .find(`.${BASE_CLASS_PREFIX}-descriptions-key`)
- .at(1)
- .getDOMNode()
- .textContent
- ).toEqual('7天留存');
- desc.unmount();
- });
- })
|