customResolutionModal.spec.jsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import selectEvent from 'react-select-event';
  2. import {Release} from 'fixtures/js-stubs/release';
  3. import {User} from 'fixtures/js-stubs/user';
  4. import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  5. import CustomResolutionModal from 'sentry/components/customResolutionModal';
  6. import ConfigStore from 'sentry/stores/configStore';
  7. describe('CustomResolutionModal', () => {
  8. let releasesMock;
  9. beforeEach(() => {
  10. ConfigStore.init();
  11. releasesMock = MockApiClient.addMockResponse({
  12. url: '/projects/org-slug/project-slug/releases/',
  13. body: [Release({authors: [User()]})],
  14. });
  15. });
  16. afterEach(() => {
  17. MockApiClient.clearMockResponses();
  18. });
  19. it('can select a version', async () => {
  20. const onSelected = jest.fn();
  21. render(
  22. <CustomResolutionModal
  23. Header={p => p.children}
  24. Body={p => p.children}
  25. Footer={p => p.children}
  26. orgSlug="org-slug"
  27. projectSlug="project-slug"
  28. onSelected={onSelected}
  29. closeModal={jest.fn()}
  30. />
  31. );
  32. expect(releasesMock).toHaveBeenCalled();
  33. selectEvent.openMenu(screen.getByText('e.g. 1.0.4'));
  34. expect(await screen.findByText('1.2.0')).toBeInTheDocument();
  35. userEvent.click(screen.getByText('1.2.0'));
  36. userEvent.click(screen.getByText('Save Changes'));
  37. expect(onSelected).toHaveBeenCalledWith({
  38. inRelease: 'sentry-android-shop@1.2.0',
  39. });
  40. });
  41. it('indicates which releases had commits from the user', async () => {
  42. const user = User();
  43. ConfigStore.set('user', user);
  44. render(
  45. <CustomResolutionModal
  46. Header={p => p.children}
  47. Body={p => p.children}
  48. Footer={p => p.children}
  49. orgSlug="org-slug"
  50. projectSlug="project-slug"
  51. closeModal={jest.fn()}
  52. />
  53. );
  54. expect(releasesMock).toHaveBeenCalled();
  55. selectEvent.openMenu(screen.getByText('e.g. 1.0.4'));
  56. expect(await screen.findByText(/You committed/)).toBeInTheDocument();
  57. });
  58. });