import React from 'react'; import { mount } from 'enzyme'; import sinon from 'sinon'; import Avatar from '../index'; import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants'; const avartarPrefix = `${BASE_CLASS_PREFIX}-avatar` describe('Avatar', () => { it('size', () => { const element = (
U U U U U U U
); const wrapper = mount(element); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-extra-extra-small`) .length ).toEqual(0); expect( wrapper .find(`.${avartarPrefix}`) .at(0) .find(`.${avartarPrefix}-extra-extra-small`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-extra-small`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(2) .find(`.${avartarPrefix}-small`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(3) .find(`.${avartarPrefix}-default`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(4) .find(`.${avartarPrefix}-medium`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(5) .find(`.${avartarPrefix}-large`) .length ).toEqual(1); }); it('color', () => { const element = (
BM TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ
); const wrapper = mount(element); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-amber`) .length ).toEqual(0); expect( wrapper .find(`.${avartarPrefix}`) .at(0) .find(`.${avartarPrefix}-amber`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-blue`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(2) .find(`.${avartarPrefix}-cyan`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(3) .find(`.${avartarPrefix}-green`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(4) .find(`.${avartarPrefix}-grey`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(5) .find(`.${avartarPrefix}-indigo`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(6) .find(`.${avartarPrefix}-light-blue`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(7) .find(`.${avartarPrefix}-light-green`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(8) .find(`.${avartarPrefix}-lime`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(9) .find(`.${avartarPrefix}-orange`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(10) .find(`.${avartarPrefix}-pink`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(11) .find(`.${avartarPrefix}-purple`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(12) .find(`.${avartarPrefix}-red`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(13) .find(`.${avartarPrefix}-teal`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(14) .find(`.${avartarPrefix}-violet`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(15) .find(`.${avartarPrefix}-yellow`) .length ).toEqual(1); }); it('src', () => { const element = ( ); const wrapper = mount(element); expect( wrapper .find('img') .at(0) .props() .src ).toEqual('https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dy.png'); }); it('shape', () => { const element = (
U U
); const wrapper = mount(element); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-circle`) .length ).toEqual(0); expect( wrapper .find(`.${avartarPrefix}`) .at(0) .find(`.${avartarPrefix}-circle`) .length ).toEqual(1); expect( wrapper .find(`.${avartarPrefix}`) .at(1) .find(`.${avartarPrefix}-square`) .length ).toEqual(1); }); it('className & style', () => { const wrapper = mount(A); expect(wrapper.exists('.test-avatar')).toEqual(true); expect(wrapper.find('.test-avatar').at(0)).toHaveStyle('color', 'red'); }); it('onError', () => { const onError = () => {}; const spyOnError = sinon.spy(onError); const avatar = mount( ); avatar .find('img') .at(0) .simulate('error'); expect(spyOnError.callCount).toBe(2); }) it('onClick', () => { const onClick = () => {}; const spyOnClick = sinon.spy(onClick); const avatar = mount(); avatar.simulate('click'); expect(spyOnClick.calledOnce).toBe(true); }) it('onMouseEnter', () => { const onMouseEnter = () => {}; const spyOnMouseEnter = sinon.spy(onMouseEnter); const avatar = mount(); avatar.simulate('mouseEnter'); expect(spyOnMouseEnter.calledOnce).toBe(true); }) it('onMouseLeave', () => { const onMouseLeave = () => {}; const spyOnMouseLeave = sinon.spy(onMouseLeave); const avatar = mount(); avatar.simulate('mouseLeave'); expect(spyOnMouseLeave.calledOnce).toBe(true); }) it('hoverMask', () => { const avatar = mount(); expect(avatar.simulate('mouseEnter', {}).exists(`.${avartarPrefix}-hover`)).toEqual(true); }) });