helpSearchModal.spec.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import {Members} from 'sentry-fixture/members';
  2. import {Organization} from 'sentry-fixture/organization';
  3. import {initializeOrg} from 'sentry-test/initializeOrg';
  4. import {render, screen} from 'sentry-test/reactTestingLibrary';
  5. import {openHelpSearchModal} from 'sentry/actionCreators/modal';
  6. import App from 'sentry/views/app';
  7. describe('Docs Search Modal', function () {
  8. beforeEach(function () {
  9. MockApiClient.addMockResponse({
  10. url: '/organizations/',
  11. body: [Organization({slug: 'billy-org', name: 'billy org'})],
  12. });
  13. MockApiClient.addMockResponse({
  14. url: '/organizations/org-slug/projects/',
  15. body: [TestStubs.Project({slug: 'foo-project'})],
  16. });
  17. MockApiClient.addMockResponse({
  18. url: '/organizations/org-slug/teams/',
  19. body: [TestStubs.Team({slug: 'foo-team'})],
  20. });
  21. MockApiClient.addMockResponse({
  22. url: '/organizations/org-slug/members/',
  23. body: Members(),
  24. });
  25. MockApiClient.addMockResponse({
  26. url: '/organizations/org-slug/plugins/?plugins=_all',
  27. body: [],
  28. });
  29. MockApiClient.addMockResponse({
  30. url: '/organizations/org-slug/config/integrations/',
  31. body: [],
  32. });
  33. MockApiClient.addMockResponse({
  34. url: '/internal/health/',
  35. body: {
  36. problems: [],
  37. },
  38. });
  39. MockApiClient.addMockResponse({
  40. url: '/assistant/',
  41. body: [],
  42. });
  43. });
  44. it('can open help search modal', async function () {
  45. const {routerContext, routerProps} = initializeOrg();
  46. render(
  47. <App {...routerProps}>
  48. <div>placeholder content</div>
  49. </App>,
  50. {
  51. context: routerContext,
  52. }
  53. );
  54. // No Modal
  55. expect(screen.queryByRole('dialog')).not.toBeInTheDocument();
  56. // Open Modal
  57. openHelpSearchModal();
  58. // Should have Modal + input
  59. expect(await screen.findByRole('dialog')).toBeInTheDocument();
  60. expect(screen.getByRole('textbox')).toHaveAttribute(
  61. 'placeholder',
  62. 'Search for documentation, FAQs, blog posts...'
  63. );
  64. });
  65. });