qt-public-ui
Version:
新设计规范下业务组件库
127 lines • 4.69 kB
JavaScript
import React, { useState } from 'react';
import { mount } from 'enzyme';
import PageCard from '../';
import { Skeleton } from 'antd';
describe('PageCard', function () {
it('can be expandable', function () {
var wrapper = mount( /*#__PURE__*/React.createElement(PageCard, {
title: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
subTitle: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
expandable: true
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
})));
expect(wrapper.find('Icon').hasClass('umui-expand-icon')).toBeTruthy();
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-down');
var expandBtn = wrapper.find('.umui-expand-controller');
expandBtn.simulate('click');
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
});
it('can be controllable component', function () {
var MockPageCard = function MockPageCard() {
var _useState = useState(false),
visibleState = _useState[0],
setVisibleState = _useState[1];
return /*#__PURE__*/React.createElement(PageCard, {
expandable: true,
onVisibleChange: function onVisibleChange() {
return setVisibleState(!visibleState);
},
visible: visibleState
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
}));
};
var wrapper = mount( /*#__PURE__*/React.createElement(MockPageCard, null));
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-down');
wrapper.find('.umui-expand-controller').simulate('click');
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
});
it('on visible change', function () {
var mockOnChange = jest.fn();
var wrapper = mount( /*#__PURE__*/React.createElement(PageCard, {
title: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
subTitle: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
expandable: true,
onVisibleChange: mockOnChange
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
})));
var expandBtn = wrapper.find('.umui-expand-controller');
expandBtn.simulate('click');
expect(mockOnChange).toHaveBeenCalled();
});
it('can set default visibility', function () {
var wrapper = mount( /*#__PURE__*/React.createElement(PageCard, {
title: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
subTitle: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053",
expandable: true,
defaultVisible: true
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
})));
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
});
});
describe('PageCard.Expand', function () {
it('can be expandable', function () {
var wrapper = mount( /*#__PURE__*/React.createElement(PageCard.Expand, {
title: "\u5168\u90E8\u63A8\u5E7F\u6E20\u9053"
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
})));
expect(wrapper.find('Icon').hasClass('umui-expand-icon')).toBeTruthy();
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-down');
var expandBtn = wrapper.find('.umui-expand-controller');
expandBtn.simulate('click');
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
});
it('can be controllable component', function () {
var MockPageCard = function MockPageCard() {
var _useState2 = useState(true),
visibleState = _useState2[0],
setVisibleState = _useState2[1];
return /*#__PURE__*/React.createElement(PageCard.Expand, {
onVisibleChange: function onVisibleChange() {
return setVisibleState(!visibleState);
},
visible: visibleState
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
}));
};
var wrapper = mount( /*#__PURE__*/React.createElement(MockPageCard, null));
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
wrapper.find('.umui-expand-controller').simulate('click');
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-down');
});
it('can set default visibility', function () {
var wrapper = mount( /*#__PURE__*/React.createElement(PageCard.Expand, {
defaultVisible: true
}, /*#__PURE__*/React.createElement(Skeleton, {
avatar: true,
paragraph: {
rows: 4
}
})));
expect(wrapper.find('Icon').prop('type')).toBe('umicon-circle-up');
});
});