projectAlertRules.spec.jsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react';
  2. import {mount} from 'enzyme';
  3. import ProjectAlertRules from 'app/views/settings/projectAlerts/projectAlertRules';
  4. describe('projectAlertRules', function() {
  5. let deleteMock;
  6. beforeEach(function() {
  7. MockApiClient.addMockResponse({
  8. url: '/projects/org1/project1/rules/',
  9. body: [TestStubs.ProjectAlertRule()],
  10. });
  11. deleteMock = MockApiClient.addMockResponse({
  12. method: 'DELETE',
  13. url: '/projects/org1/project1/rules/1/',
  14. body: {},
  15. });
  16. });
  17. afterEach(function() {
  18. MockApiClient.clearMockResponses();
  19. });
  20. it('deletes', function() {
  21. const wrapper = mount(
  22. <ProjectAlertRules routes={[]} params={{orgId: 'org1', projectId: 'project1'}} />,
  23. TestStubs.routerContext()
  24. );
  25. wrapper.find('Confirm').simulate('click');
  26. wrapper.update();
  27. wrapper.find('Modal Button[priority="primary"]').simulate('click');
  28. expect(deleteMock).toHaveBeenCalled();
  29. });
  30. it('has disabled edit rule button without access', function() {
  31. const wrapper = mount(
  32. <ProjectAlertRules routes={[]} params={{orgId: 'org1', projectId: 'project1'}} />,
  33. TestStubs.routerContext([{organization: TestStubs.Organization({access: []})}])
  34. );
  35. expect(wrapper.find('Button[data-test-id="edit-rule"]').prop('disabled')).toBe(true);
  36. });
  37. });