| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- 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 = (
- <div>
- <Avatar size="extra-extra-small" style={{ margin: 4 }}>
- U
- </Avatar>
- <Avatar size="extra-small" style={{ margin: 4 }}>
- U
- </Avatar>
- <Avatar size="small" style={{ margin: 4 }}>
- U
- </Avatar>
- <Avatar size="default" style={{ margin: 4 }}>
- U
- </Avatar>
- <Avatar style={{ margin: 4 }}>U</Avatar>
- <Avatar size="large" style={{ margin: 4 }}>
- U
- </Avatar>
- <Avatar size="extra-large" style={{ margin: 4 }}>
- U
- </Avatar>
- </div>
- );
- 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 = (
- <div>
- <Avatar color="amber" style={{ margin: 4 }}>
- BM
- </Avatar>
- <Avatar color="blue" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="cyan" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="green" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="grey" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="indigo" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="light-blue" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="light-green" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="lime" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="orange" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="pink" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="purple" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="red" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="teal" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="violet" style={{ margin: 4 }}>
- TJ
- </Avatar>
- <Avatar color="yellow" style={{ margin: 4 }}>
- TJ
- </Avatar>
- </div>
- );
- 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 = (
- <Avatar
- src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dy.png"
- style={{ margin: 4 }}
- />
- );
- 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 = (
- <div>
- <Avatar style={{ margin: 4 }}>U</Avatar>
- <Avatar shape="square" style={{ margin: 4 }}>
- U
- </Avatar>
- </div>
- );
- 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(<Avatar className='test-avatar' style={{color: 'red'}}>A</Avatar>);
- 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
- onError={spyOnError}
- src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/root-web-sites/dy.png"
- />
- );
- 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 onClick={spyOnClick} />);
- avatar.simulate('click');
- expect(spyOnClick.calledOnce).toBe(true);
- })
- it('onMouseEnter', () => {
- const onMouseEnter = () => {};
- const spyOnMouseEnter = sinon.spy(onMouseEnter);
- const avatar = mount(<Avatar onMouseEnter={spyOnMouseEnter} />);
- avatar.simulate('mouseEnter');
- expect(spyOnMouseEnter.calledOnce).toBe(true);
- })
- it('onMouseLeave', () => {
- const onMouseLeave = () => {};
- const spyOnMouseLeave = sinon.spy(onMouseLeave);
- const avatar = mount(<Avatar onMouseLeave={spyOnMouseLeave} />);
- avatar.simulate('mouseLeave');
- expect(spyOnMouseLeave.calledOnce).toBe(true);
- })
- it('hoverMask', () => {
- const avatar = mount(<Avatar hoverMask='asd' />);
- expect(avatar.simulate('mouseEnter', {}).exists(`.${avartarPrefix}-hover`)).toEqual(true);
- })
- });
|