tooltip.spec.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React from 'react';
  2. import {mount} from 'enzyme';
  3. import Tooltip from 'app/components/tooltip';
  4. describe('Tooltip', function() {
  5. it('renders', function() {
  6. let wrapper = mount(
  7. <Tooltip title="test">
  8. <span>My Button</span>
  9. </Tooltip>
  10. );
  11. expect(wrapper).toMatchSnapshot();
  12. });
  13. it('updates title', function() {
  14. let wrapper = mount(
  15. <Tooltip title="test">
  16. <span>My Button</span>
  17. </Tooltip>
  18. );
  19. wrapper.setProps({title: 'bar'});
  20. let tip = wrapper.find('.tip');
  21. expect(tip.props().title).toBe('bar');
  22. wrapper.setProps({title: 'baz'});
  23. tip = wrapper.find('.tip');
  24. expect(tip.props().title).toBe('baz');
  25. });
  26. it('disables and re-enables', function() {
  27. let wrapper = mount(
  28. <Tooltip title="test">
  29. <span>My Button</span>
  30. </Tooltip>
  31. );
  32. wrapper.setProps({disabled: true});
  33. let tip = wrapper.find('span');
  34. expect(tip.props().title).toBeUndefined();
  35. wrapper.setProps({disabled: false});
  36. tip = wrapper.find('.tip');
  37. expect(tip.props().title).toBe('test');
  38. });
  39. it('simultaneous enable and text change', function() {
  40. let wrapper = mount(
  41. <Tooltip title="test">
  42. <span>My Button</span>
  43. </Tooltip>
  44. );
  45. wrapper.setProps({disabled: true, title: 'bar'});
  46. let tip = wrapper.find('span');
  47. expect(tip.props().title).toBeUndefined();
  48. wrapper.setProps({disabled: false});
  49. });
  50. });