import Badge from '../index';
import Avatar from '../../avatar/index';
import ConfigProvider from '../../configProvider';
function getBadge(props) {
if (!props.optionList && !props.children) {
props.children = Semi
}
return mount();
}
describe('badge', () => {
it('badge with custom className & style', () => {
let props = {
className: 'test',
style: {
color: 'red'
}
}
let badge = getBadge(props);
expect(badge.hasClass('test')).toEqual(true);
expect(badge.find('span.test')).toHaveStyle('color', 'red');
badge.unmount();
});
it('badge children', () => {
let children = (
semi design
)
let props = {
children
};
let badge = getBadge(props);
expect(badge.contains(children)).toEqual(true);
});
it('badge count', () => {
let props = {
count: 5
};
let badge = getBadge(props);
expect(badge.find('.semi-badge-count').text()).toEqual("5");
expect(badge.exists('.semi-badge-dot')).toEqual(false);
let stringProps = {
count: 'semi'
}
let stringBadge = getBadge(stringProps);
expect(stringBadge.find('.semi-badge-count').text()).toEqual("semi");
expect(stringBadge.exists('.semi-badge-dot')).toEqual(false);
});
it('badge dot', () => {
let props = {
dot: true
};
let badge = getBadge(props);
expect(badge.exists('.semi-badge-dot')).toEqual(true);
expect(badge.exists('.semi-badge-count')).toEqual(false);
});
it('badge overflowCount', () => {
let props = {
count: 99,
overflowCount: 5
};
let badge = getBadge(props);
expect(badge.find('.semi-badge-count').text()).toEqual('5+');
});
it('badge type & theme', () => {
let types = ['primary', 'secondary', 'tertiary', 'warning', 'danger'];
let themes = ['solid', 'light', 'inverted'];
let props = {
type: types[0],
theme: themes[0]
}
let badge = getBadge(props)
expect(badge.exists(`.semi-badge-${types[0]}`)).toEqual(true);
badge.setProps({ type: types[1] });
badge.update();
expect(badge.exists(`.semi-badge-${types[1]}`)).toEqual(true);
badge.setProps({ type: types[2] });
badge.update();
expect(badge.exists(`.semi-badge-${types[2]}`)).toEqual(true);
badge.setProps({ type: types[3] });
badge.update();
expect(badge.exists(`.semi-badge-${types[3]}`)).toEqual(true);
badge.setProps({ type: types[4] });
badge.update();
expect(badge.exists(`.semi-badge-${types[4]}`)).toEqual(true);
badge.setProps({ theme: themes[1] });
badge.update();
expect(badge.exists(`.semi-badge-${themes[1]}`)).toEqual(true);
badge.setProps({ theme: themes[2] });
badge.update();
expect(badge.exists(`.semi-badge-${themes[2]}`)).toEqual(true);
});
it('badge position', () => {
let leftTop = { position: 'leftTop' };
let leftBottom = { position: 'leftBottom' };
let rightTop = { } //rightTop is default position
let rightBottom = { position: 'rightBottom' };
let leftTopBadge = getBadge(leftTop);
let leftBottomBadge = getBadge(leftBottom);
let rightTopBadge = getBadge(rightTop);
let rightBottomBadge = getBadge(rightBottom);
expect(leftTopBadge.exists('.semi-badge-leftTop')).toEqual(true);
expect(leftBottomBadge.exists('.semi-badge-leftBottom')).toEqual(true);
expect(rightTopBadge.exists('.semi-badge-rightTop')).toEqual(true);
expect(rightBottomBadge.exists('.semi-badge-rightBottom')).toEqual(true);
});
it('badge in rtl mode', ()=>{
let rtlWrapper = mount(
Semi
)
// when in rtl mode, default position is 'rightTop'
expect(rtlWrapper.exists('.semi-badge-leftTop')).toEqual(true);
})
});