button.test.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import Button from '../index';
  2. import ButtonGroup from '../index';
  3. import { mount } from 'enzyme';
  4. import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
  5. import { IconEdit } from '@douyinfe/semi-icons';
  6. describe('Button', () => {
  7. it('button with custom className & style', () => {
  8. const wrapper = mount(<Button className="test" style={{ color: 'red' }} />);
  9. expect(wrapper.hasClass('test')).toEqual(true);
  10. expect(wrapper.find('button').getDOMNode().style.color).toBe('red');
  11. });
  12. it(`button with icon`, () => {
  13. const iconType = `${BASE_CLASS_PREFIX}-icon-edit`;
  14. const elem2 = mount(<Button icon={<IconEdit />} />);
  15. expect(elem2.find(`.${iconType}`).length).toBe(1);
  16. });
  17. it(`test horizontal padding`, () => {
  18. const elem = mount(<Button icon={<IconEdit />} noHorizontalPadding />);
  19. expect(elem.find('button').getDOMNode().style.paddingLeft).toBe('0px');
  20. expect(elem.find(`button`).getDOMNode().style.paddingRight).toBe('0px');
  21. const elem2 = mount(<Button icon={<IconEdit />} noHorizontalPadding={['left', 'right']} />);
  22. expect(elem2.find('button').getDOMNode().style.paddingLeft).toBe('0px');
  23. expect(elem2.find(`button`).getDOMNode().style.paddingRight).toBe('0px');
  24. });
  25. it(`test loading`, () => {
  26. const elem = mount(<Button icon={<IconEdit />} loading />);
  27. expect(elem.find({ 'data-icon': 'spin' }).length).toBe(1);
  28. });
  29. it('test button type',()=>{
  30. const testType=(type)=>{
  31. const elem=mount(<Button htmlType={type}/>);
  32. expect(elem.find('button').getDOMNode().type).toBe(type);
  33. }
  34. testType('button');
  35. testType('reset');
  36. testType('submit');
  37. });
  38. it(`test position`, () => {
  39. const elem = mount(<Button icon={<IconEdit />} children={'text'} iconPosition={'right'} />);
  40. expect(elem.find(`.${BASE_CLASS_PREFIX}-button-content-left`).length).toBe(1);
  41. expect(elem.find(`.${BASE_CLASS_PREFIX}-button-content-right`).length).toBe(0);
  42. });
  43. it(`button group with invalid child`, () => {
  44. const buttonGroup = mount(
  45. <ButtonGroup>
  46. {false}
  47. {null}
  48. {undefined}
  49. {1}
  50. <Button>查询</Button>
  51. <Button>剪切</Button>
  52. </ButtonGroup>
  53. );
  54. expect(buttonGroup.getDOMNode().textContent).toEqual('1查询剪切');
  55. });
  56. it('button group with custom className & style', () => {
  57. const wrapper = mount(<ButtonGroup className="test" style={{ color: 'red' }} />);
  58. expect(wrapper.hasClass('test')).toEqual(true);
  59. expect(wrapper.find('button').getDOMNode().style.color).toBe('red');
  60. });
  61. });