11import { OrganizationFixture } from 'sentry-fixture/organization' ;
22import { PageFiltersFixture } from 'sentry-fixture/pageFilters' ;
33
4- import { render , screen , userEvent , within } from 'sentry-test/reactTestingLibrary' ;
4+ import {
5+ render ,
6+ screen ,
7+ userEvent ,
8+ waitFor ,
9+ within ,
10+ } from 'sentry-test/reactTestingLibrary' ;
511
612import type { Organization } from 'sentry/types/organization' ;
713import { DiscoverDatasets } from 'sentry/utils/discover/types' ;
14+ import { FieldKind } from 'sentry/utils/fields' ;
815import { useCustomMeasurements } from 'sentry/utils/useCustomMeasurements' ;
916
1017import { EventsSearchBar } from './eventsSearchBar' ;
@@ -25,6 +32,13 @@ describe('EventsSearchBar', () => {
2532 body : [ ] ,
2633 method : 'POST' ,
2734 } ) ;
35+ MockApiClient . addMockResponse ( {
36+ url : `/organizations/org-slug/tags/` ,
37+ body : [
38+ { key : 'environment' , name : 'environment' , kind : FieldKind . FIELD } ,
39+ { key : 'transaction' , name : 'transaction' , kind : FieldKind . FIELD } ,
40+ ] ,
41+ } ) ;
2842 } ) ;
2943
3044 it . knownFlake ( 'does not show function tags in has: dropdown' , async ( ) => {
@@ -52,18 +66,22 @@ describe('EventsSearchBar', () => {
5266 ) ;
5367
5468 const input = await screen . findByRole ( 'combobox' , { name : 'Add a search term' } ) ;
55- await userEvent . click ( input , { delay : null } ) ;
56- await userEvent . paste ( 'has:p' , { delay : null } ) ;
69+ await userEvent . click ( input ) ;
70+ await userEvent . paste ( 'has:p' ) ;
5771
5872 await userEvent . click (
59- screen . getByRole ( 'button' , { name : 'Edit value for filter: has' } )
73+ await screen . findByRole ( 'button' , { name : 'Edit value for filter: has' } )
6074 ) ;
6175
6276 // Assert we actually have has: dropdown options before checking exclusions.
6377 expect ( await screen . findByRole ( 'option' , { name : 'environment' } ) ) . toBeInTheDocument ( ) ;
6478
6579 // p50 is a function and should not be suggested as a has: tag.
6680 expect ( screen . queryByRole ( 'option' , { name : 'p50' } ) ) . not . toBeInTheDocument ( ) ;
81+
82+ await waitFor ( ( ) => {
83+ expect ( screen . getByRole ( 'combobox' ) ) . toBeInTheDocument ( ) ;
84+ } ) ;
6785 } ) ;
6886
6987 it ( 'shows the selected aggregate in the dropdown' , async ( ) => {
@@ -92,11 +110,15 @@ describe('EventsSearchBar', () => {
92110
93111 const input = await screen . findByRole ( 'combobox' , { name : 'Add a search term' } ) ;
94112 await userEvent . click ( input ) ;
95- await userEvent . paste ( 'count_uni' , { delay : null } ) ;
113+ await userEvent . paste ( 'count_uni' ) ;
96114
97115 expect (
98116 await within ( await screen . findByRole ( 'listbox' ) ) . findByText ( 'count_unique(...)' )
99117 ) . toBeInTheDocument ( ) ;
118+
119+ await waitFor ( ( ) => {
120+ expect ( screen . getByRole ( 'combobox' ) ) . toBeInTheDocument ( ) ;
121+ } ) ;
100122 } ) ;
101123
102124 it ( 'shows normal tags, e.g. transaction, in the dropdown' , async ( ) => {
@@ -125,13 +147,17 @@ describe('EventsSearchBar', () => {
125147
126148 const input = await screen . findByRole ( 'combobox' , { name : 'Add a search term' } ) ;
127149 await userEvent . clear ( input ) ;
128- await userEvent . click ( input , { delay : null } ) ;
129- await userEvent . paste ( 'transact' , { delay : null } ) ;
150+ await userEvent . click ( input ) ;
151+ await userEvent . paste ( 'transact' ) ;
130152
131153 expect (
132154 await within ( await screen . findByRole ( 'listbox' ) ) . findByRole ( 'option' , {
133155 name : 'transaction' ,
134156 } )
135157 ) . toBeInTheDocument ( ) ;
158+
159+ await waitFor ( ( ) => {
160+ expect ( screen . getByRole ( 'combobox' ) ) . toBeInTheDocument ( ) ;
161+ } ) ;
136162 } ) ;
137163} ) ;
0 commit comments