customResolutionModal.spec.jsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import {mountWithTheme} from 'sentry-test/enzyme';
  3. import CustomResolutionModal from 'app/components/customResolutionModal';
  4. describe('CustomResolutionModal', function() {
  5. let releasesMock;
  6. beforeEach(function() {
  7. releasesMock = MockApiClient.addMockResponse({
  8. url: '/projects/org-slug/project-slug/releases/',
  9. body: [TestStubs.Release()],
  10. });
  11. });
  12. it('can select a version', async function() {
  13. const onSelected = jest.fn();
  14. const wrapper = mountWithTheme(
  15. <CustomResolutionModal
  16. orgId="org-slug"
  17. projectId="project-slug"
  18. onCanceled={() => false}
  19. onSelected={onSelected}
  20. show
  21. />,
  22. TestStubs.routerContext()
  23. );
  24. expect(releasesMock).toHaveBeenCalled();
  25. await tick();
  26. wrapper.update();
  27. expect(wrapper.find('Select').prop('options')).toEqual([
  28. expect.objectContaining({
  29. value: '92eccef279d966b2319f0802fa4b22b430a5f72b',
  30. label: expect.anything(),
  31. }),
  32. ]);
  33. wrapper.find('input[id="version"]').simulate('change', {target: {value: '9'}});
  34. await tick();
  35. wrapper.update();
  36. wrapper.find('input[id="version"]').simulate('keyDown', {keyCode: 13});
  37. expect(wrapper.find('SelectControl').prop('value')).toEqual({
  38. value: '92eccef279d966b2319f0802fa4b22b430a5f72b',
  39. label: expect.anything(),
  40. });
  41. wrapper.find('form').simulate('submit');
  42. expect(onSelected).toHaveBeenCalledWith({
  43. inRelease: '92eccef279d966b2319f0802fa4b22b430a5f72b',
  44. });
  45. });
  46. });