issueListSetAsDefault.spec.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {initializeOrg} from 'sentry-test/initializeOrg';
  2. import {render, screen, userEvent, waitFor} from 'sentry-test/reactTestingLibrary';
  3. import {SavedSearchType, SavedSearchVisibility} from 'sentry/types';
  4. import IssueListSetAsDefault from 'sentry/views/issueList/issueListSetAsDefault';
  5. describe('IssueListSetAsDefault', () => {
  6. const organization = TestStubs.Organization({
  7. features: ['issue-list-saved-searches-v2'],
  8. });
  9. const {router} = initializeOrg();
  10. const routerProps = {
  11. params: router.params,
  12. location: router.location,
  13. };
  14. const defaultProps = {
  15. organization,
  16. savedSearch: null,
  17. query: 'is:unresolved',
  18. sort: 'date',
  19. ...routerProps,
  20. };
  21. it('can set a search as default', async () => {
  22. const mockPinSearch = MockApiClient.addMockResponse({
  23. url: '/organizations/org-slug/pinned-searches/',
  24. method: 'PUT',
  25. body: TestStubs.Search({
  26. isPinned: true,
  27. visibility: SavedSearchVisibility.OwnerPinned,
  28. }),
  29. });
  30. render(<IssueListSetAsDefault {...defaultProps} />);
  31. userEvent.click(screen.getByRole('button', {name: /set as default/i}));
  32. await waitFor(() => {
  33. expect(mockPinSearch).toHaveBeenCalledWith(
  34. expect.anything(),
  35. expect.objectContaining({
  36. data: {query: 'is:unresolved', sort: 'date', type: SavedSearchType.ISSUE},
  37. })
  38. );
  39. });
  40. });
  41. it('can remove a default search', async () => {
  42. const mockUnpinSearch = MockApiClient.addMockResponse({
  43. url: '/organizations/org-slug/pinned-searches/',
  44. method: 'DELETE',
  45. });
  46. render(
  47. <IssueListSetAsDefault
  48. {...defaultProps}
  49. savedSearch={TestStubs.Search({isPinned: true})}
  50. />
  51. );
  52. userEvent.click(screen.getByRole('button', {name: /remove default/i}));
  53. await waitFor(() => {
  54. expect(mockUnpinSearch).toHaveBeenCalledWith(
  55. expect.anything(),
  56. expect.objectContaining({
  57. data: {type: SavedSearchType.ISSUE},
  58. })
  59. );
  60. });
  61. });
  62. });