multipleCheckbox.spec.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {mountWithTheme} from 'sentry-test/enzyme';
  2. import MultipleCheckbox from 'app/views/settings/components/forms/controls/multipleCheckbox';
  3. describe('MultipleCheckbox', function () {
  4. it('renders', function () {
  5. const wrapper = mountWithTheme(
  6. <MultipleCheckbox
  7. choices={[
  8. [0, 'Choice A'],
  9. [1, 'Choice B'],
  10. [2, 'Choice C'],
  11. ]}
  12. value={[1]}
  13. />
  14. );
  15. expect(wrapper).toSnapshot();
  16. });
  17. it('unselects a checked input', function () {
  18. const onChange = jest.fn();
  19. const wrapper = mountWithTheme(
  20. <MultipleCheckbox
  21. choices={[
  22. [0, 'Choice A'],
  23. [1, 'Choice B'],
  24. [2, 'Choice C'],
  25. ]}
  26. value={[1]}
  27. onChange={onChange}
  28. />
  29. );
  30. wrapper
  31. .find('input')
  32. .at(1)
  33. .simulate('change', {target: {checked: false}});
  34. expect(onChange).toHaveBeenCalledWith([], expect.anything());
  35. });
  36. it('selects an unchecked input', function () {
  37. const onChange = jest.fn();
  38. const wrapper = mountWithTheme(
  39. <MultipleCheckbox
  40. choices={[
  41. [0, 'Choice A'],
  42. [1, 'Choice B'],
  43. [2, 'Choice C'],
  44. ]}
  45. value={[1]}
  46. onChange={onChange}
  47. />
  48. );
  49. wrapper
  50. .find('input')
  51. .at(0)
  52. .simulate('change', {target: {checked: true}});
  53. expect(onChange).toHaveBeenCalledWith([1, 0], expect.anything());
  54. });
  55. });