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: 电商 },
{ key: '认证状态', value: '未认证' },
];
const dataWithHide = [
{ key: '实际用户数量', value: '1,480,000', hidden: true },
{ key: '7天留存', value: '98%' },
{ key: '安全等级', value: '3级' },
{ key: '垂类标签', value: 电商 },
{ key: '认证状态', value: '未认证' },
];
const dataWithKeyIsNode = [
{ key: 实际用户数量, value: '1,480,000' },
{ key: '7天留存', value: '98%' },
{ key: '安全等级', value: '3级' },
{ key: '垂类标签', value: 电商 },
{ key: '认证状态', value: '未认证' },
];
function renderDescriptions(props) {
const realProps = {
data,
...props,
};
return mount(, {
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(
1,480,000
98%
3级
电商
未认证
, {
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();
});
})