@@ -43,7 +43,8 @@ test.describe('explore services page', () => {
4343
4444 // Select nginx, as it has the lowest volume, and should otherwise show up last
4545 await explorePage . servicesSearch . pressSequentially ( '^nginx$' ) ;
46- await page . keyboard . press ( 'Escape' ) ;
46+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
47+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
4748
4849 // Assert the first is nginx, or we might click before it's done loading
4950 await expect ( explorePage . getPanelHeaderLocator ( ) . first ( ) ) . toHaveText ( 'nginxIncludeShow logs' ) ;
@@ -122,6 +123,8 @@ test.describe('explore services page', () => {
122123 await explorePage . gotoServices ( ) ;
123124 await explorePage . servicesSearch . click ( ) ;
124125 await explorePage . servicesSearch . pressSequentially ( 'mimir' ) ;
126+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
127+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
125128 // Volume can differ, scroll down so all of the panels are loaded
126129 await explorePage . scrollToBottom ( ) ;
127130
@@ -136,36 +139,28 @@ test.describe('explore services page', () => {
136139 // Only the first title is visible
137140 await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 0 ) ) . toBeVisible ( ) ;
138141 await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 1 ) ) . not . toBeVisible ( ) ;
139- await expect ( page . getByText ( 'of 4' ) ) . toBeVisible ( ) ;
140142 } ) ;
141143
142144 test ( 'should filter service labels on exact search' , async ( { page } ) => {
143145 await explorePage . gotoServices ( ) ;
144146 await explorePage . servicesSearch . click ( ) ;
145- await explorePage . servicesSearch . pressSequentially ( 'mimir-ingester' ) ;
146- // Volume can differ, scroll down so all of the panels are loaded
147- await explorePage . scrollToBottom ( ) ;
147+ await explorePage . servicesSearch . pressSequentially ( 'mimir-i' ) ;
148+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
149+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
150+
148151 // service name should be in time series panel
149152 await expect ( page . getByTestId ( 'data-testid Panel header mimir-ingester' ) . nth ( 0 ) ) . toBeVisible ( ) ;
150153 // service name should also be in logs panel, just not visible to the user
151154 await expect ( page . getByTestId ( 'data-testid Panel header mimir-ingester' ) . nth ( 1 ) ) . toBeVisible ( ) ;
152-
153- // Exit out of the dropdown
154- await page . keyboard . press ( 'Escape' ) ;
155- // The matched string should exist in the search dropdown
156- await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 0 ) ) . toBeVisible ( ) ;
157- // And the panel title
158- await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 1 ) ) . toBeVisible ( ) ;
159- // And the logs panel title should be hidden
160- await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 2 ) ) . not . toBeVisible ( ) ;
161- await expect ( page . getByText ( 'of 1' ) ) . toBeVisible ( ) ;
162155 } ) ;
163156
164157 test ( 'should filter service labels on partial string' , async ( { page } ) => {
165158 await explorePage . setExtraTallViewportSize ( ) ;
166159 await explorePage . gotoServices ( ) ;
167160 await explorePage . servicesSearch . click ( ) ;
168161 await explorePage . servicesSearch . pressSequentially ( 'imi' ) ;
162+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
163+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
169164 // service name should be in time series panel
170165 await expect ( page . getByTestId ( 'data-testid Panel header mimir-ingester' ) . nth ( 0 ) ) . toBeVisible ( ) ;
171166 // service name should also be in logs panel, just not visible to the user
@@ -176,7 +171,6 @@ test.describe('explore services page', () => {
176171 // Only the first title is visible
177172 await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 0 ) ) . toBeVisible ( ) ;
178173 await expect ( page . getByText ( 'mimir-ingester' ) . nth ( 1 ) ) . not . toBeVisible ( ) ;
179- await expect ( page . getByText ( 'of 4' ) ) . toBeVisible ( ) ;
180174 } ) ;
181175
182176 test ( 'should select a service label value and navigate to log view' , async ( { page } ) => {
@@ -190,7 +184,8 @@ test.describe('explore services page', () => {
190184 await explorePage . gotoServices ( ) ;
191185 await explorePage . servicesSearch . click ( ) ;
192186 await explorePage . servicesSearch . pressSequentially ( 'tempo-distributor' ) ;
193- await page . keyboard . press ( 'Escape' ) ;
187+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
188+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
194189 // Volume can differ, scroll down so all of the panels are loaded
195190 await explorePage . scrollToBottom ( ) ;
196191 await expect ( page . getByText ( 'of 1' ) ) . toBeVisible ( ) ;
@@ -278,6 +273,8 @@ test.describe('explore services page', () => {
278273 // Filter results for tempo-distributor
279274 await explorePage . servicesSearch . click ( ) ;
280275 await explorePage . servicesSearch . pressSequentially ( 'tempo-d' ) ;
276+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
277+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
281278
282279 const tempoDistributorPanelHeader = explorePage . getPanelHeaderLocator ( ) ;
283280 const tempoDistributorIncludeBtn = tempoDistributorPanelHeader . getByTestId ( 'data-testid button-filter-include' ) ;
@@ -666,9 +663,11 @@ test.describe('explore services page', () => {
666663
667664 // Assert results have loaded before we search or we'll cancel the ongoing volume query
668665 await expect ( page . getByText ( 'of 6' ) ) . toBeVisible ( ) ;
669- // Search for "gateway"
670- await page . getByTestId ( testIds . index . searchLabelValueInput ) . fill ( 'Gate' ) ;
671- await page . getByTestId ( testIds . index . searchLabelValueInput ) . press ( 'Escape' ) ;
666+ // Search for "gateway" (same Combobox pattern as service tab)
667+ await explorePage . servicesSearch . click ( ) ;
668+ await explorePage . servicesSearch . fill ( 'Gate' ) ;
669+ await expect ( page . getByRole ( 'listbox' ) ) . toBeVisible ( ) ;
670+ await page . getByRole ( 'option' , { name : / U s e c u s t o m v a l u e / } ) . click ( ) ;
672671
673672 // Asser this filters down to only one result
674673 await expect ( page . getByTestId ( testIds . index . showLogsButton ) ) . toHaveCount ( 1 ) ;
0 commit comments