rules.spec.tsx 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import {mountWithTheme} from 'sentry-test/enzyme';
  2. import convertRelayPiiConfig from 'sentry/views/settings/components/dataScrubbing/convertRelayPiiConfig';
  3. import Rules from 'sentry/views/settings/components/dataScrubbing/rules';
  4. const relayPiiConfig = TestStubs.DataScrubbingRelayPiiConfig();
  5. const stringRelayPiiConfig = JSON.stringify(relayPiiConfig);
  6. const convertedRules = convertRelayPiiConfig(stringRelayPiiConfig);
  7. const rules = convertedRules;
  8. const handleShowEditRule = jest.fn();
  9. const handleDelete = jest.fn();
  10. describe('Rules', () => {
  11. it('default render', () => {
  12. const wrapper = mountWithTheme(<Rules rules={rules} />);
  13. expect(wrapper.find('ListItem')).toHaveLength(3);
  14. });
  15. it('render correct description', () => {
  16. const wrapper = mountWithTheme(<Rules rules={rules} />);
  17. const listItems = wrapper.find('ListItem');
  18. expect(listItems.at(1).text()).toEqual(
  19. '[Mask] [Credit card numbers] from [$message]'
  20. );
  21. expect(listItems.at(0).text()).toEqual(
  22. '[Replace] [Password fields] with [Scrubbed] from [password]'
  23. );
  24. });
  25. it('render disabled list', () => {
  26. const wrapper = mountWithTheme(<Rules rules={rules} disabled />);
  27. expect(wrapper.find('List').prop('isDisabled')).toEqual(true);
  28. });
  29. it('render edit and delete buttons', () => {
  30. const wrapper = mountWithTheme(
  31. <Rules rules={rules} onEditRule={handleShowEditRule} onDeleteRule={handleDelete} />
  32. );
  33. expect(wrapper.find('[aria-label="Edit Rule"]').hostNodes()).toHaveLength(3);
  34. expect(wrapper.find('[aria-label="Delete Rule"]').hostNodes()).toHaveLength(3);
  35. });
  36. it('render disabled edit and delete buttons', () => {
  37. const wrapper = mountWithTheme(
  38. <Rules
  39. rules={rules}
  40. onEditRule={handleShowEditRule}
  41. onDeleteRule={handleDelete}
  42. disabled
  43. />
  44. );
  45. expect(
  46. wrapper.find('[aria-label="Edit Rule"]').hostNodes().at(0).prop('aria-disabled')
  47. ).toEqual(true);
  48. expect(
  49. wrapper.find('[aria-label="Delete Rule"]').hostNodes().at(0).prop('aria-disabled')
  50. ).toEqual(true);
  51. });
  52. it('render edit button only', () => {
  53. const wrapper = mountWithTheme(
  54. <Rules rules={rules} onEditRule={handleShowEditRule} />
  55. );
  56. expect(wrapper.find('[aria-label="Edit Rule"]').hostNodes()).toHaveLength(3);
  57. expect(wrapper.find('[aria-label="Delete Rule"]')).toHaveLength(0);
  58. });
  59. it('render delete button only', () => {
  60. const wrapper = mountWithTheme(<Rules rules={rules} onDeleteRule={handleDelete} />);
  61. expect(wrapper.find('[aria-label="Edit Rule"]')).toHaveLength(0);
  62. expect(wrapper.find('[aria-label="Delete Rule"]').hostNodes()).toHaveLength(3);
  63. });
  64. });