projectFilters.spec.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  2. import ProjectFilters from 'sentry/views/projectDetail/projectFilters';
  3. describe('ProjectDetail > ProjectFilters', () => {
  4. const onSearch = jest.fn();
  5. const tagValueLoader = jest.fn();
  6. afterEach(() => {
  7. jest.resetAllMocks();
  8. });
  9. it('recommends semver search tag', async () => {
  10. tagValueLoader.mockResolvedValue([
  11. {
  12. count: null,
  13. firstSeen: null,
  14. key: 'release.version',
  15. lastSeen: null,
  16. name: 'sentry@0.5.3',
  17. value: 'sentry@0.5.3',
  18. },
  19. ]);
  20. render(
  21. <ProjectFilters
  22. query=""
  23. onSearch={onSearch}
  24. tagValueLoader={tagValueLoader}
  25. relativeDateOptions={{}}
  26. />
  27. );
  28. await userEvent.click(
  29. screen.getByPlaceholderText('Search by release version, build, package, or stage')
  30. );
  31. // Should suggest all semver tags
  32. await screen.findByText('release');
  33. expect(screen.getByText('.build')).toBeInTheDocument();
  34. expect(screen.getByText('.package')).toBeInTheDocument();
  35. expect(screen.getByText('.stage')).toBeInTheDocument();
  36. expect(screen.getByText('.version')).toBeInTheDocument();
  37. await userEvent.paste('release.version:');
  38. await screen.findByText('sentry@0.5.3');
  39. });
  40. });