Skip to content

Commit 13e343b

Browse files
[9.2] [Discover] Address flaky reporting tests (#238617) (#239185)
# Backport This will backport the following commits from `main` to `9.2`: - [[Discover] Address flaky reporting tests (#238617)](#238617) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Julia Rechkunova","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-10-15T16:00:49Z","message":"[Discover] Address flaky reporting tests (#238617)\n\n- Closes https://github.com/elastic/kibana/issues/237923\n- Closes https://github.com/elastic/kibana/issues/234685\n- Closes https://github.com/elastic/kibana/issues/234122\n- Closes https://github.com/elastic/kibana/issues/232869\n- Closes https://github.com/elastic/kibana/issues/229705\n- Closes https://github.com/elastic/kibana/issues/229445\n- Closes https://github.com/elastic/kibana/issues/238027\n- Closes https://github.com/elastic/kibana/issues/235617\n- Closes https://github.com/elastic/kibana/issues/238774\n\n## Summary\n\nThis PR updates tests.\n\n\n### Checklist\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [x] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.","sha":"905489f47ccf96bb8b078ef494288f81de985deb","branchLabelMapping":{"^v9.3.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:DataDiscovery","backport:version","v9.2.0","v9.3.0","v9.1.6","v8.19.6"],"title":"[Discover] Address flaky reporting tests","number":238617,"url":"https://github.com/elastic/kibana/pull/238617","mergeCommit":{"message":"[Discover] Address flaky reporting tests (#238617)\n\n- Closes https://github.com/elastic/kibana/issues/237923\n- Closes https://github.com/elastic/kibana/issues/234685\n- Closes https://github.com/elastic/kibana/issues/234122\n- Closes https://github.com/elastic/kibana/issues/232869\n- Closes https://github.com/elastic/kibana/issues/229705\n- Closes https://github.com/elastic/kibana/issues/229445\n- Closes https://github.com/elastic/kibana/issues/238027\n- Closes https://github.com/elastic/kibana/issues/235617\n- Closes https://github.com/elastic/kibana/issues/238774\n\n## Summary\n\nThis PR updates tests.\n\n\n### Checklist\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [x] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.","sha":"905489f47ccf96bb8b078ef494288f81de985deb"}},"sourceBranch":"main","suggestedTargetBranches":["9.2","9.1","8.19"],"targetPullRequestStates":[{"branch":"9.2","label":"v9.2.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.3.0","branchLabelMappingKey":"^v9.3.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/238617","number":238617,"mergeCommit":{"message":"[Discover] Address flaky reporting tests (#238617)\n\n- Closes https://github.com/elastic/kibana/issues/237923\n- Closes https://github.com/elastic/kibana/issues/234685\n- Closes https://github.com/elastic/kibana/issues/234122\n- Closes https://github.com/elastic/kibana/issues/232869\n- Closes https://github.com/elastic/kibana/issues/229705\n- Closes https://github.com/elastic/kibana/issues/229445\n- Closes https://github.com/elastic/kibana/issues/238027\n- Closes https://github.com/elastic/kibana/issues/235617\n- Closes https://github.com/elastic/kibana/issues/238774\n\n## Summary\n\nThis PR updates tests.\n\n\n### Checklist\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [x] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [x] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n- [x] Review the [backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand apply applicable `backport:*` labels.","sha":"905489f47ccf96bb8b078ef494288f81de985deb"}},{"branch":"9.1","label":"v9.1.6","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.19","label":"v8.19.6","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Julia Rechkunova <[email protected]>
1 parent c020ab9 commit 13e343b

File tree

3 files changed

+88
-17
lines changed

3 files changed

+88
-17
lines changed

src/platform/test/functional/page_objects/export_page.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,17 @@ export class ExportPageObject extends FtrService {
6464
}
6565

6666
async closeExportFlyout() {
67+
const isExportFlyoutOpen = await this.isExportFlyoutOpen();
68+
69+
if (!isExportFlyoutOpen) {
70+
return; // It was already closed
71+
}
72+
73+
await this.testSubjects.click('exportFlyoutCloseButton');
74+
6775
await this.retry.waitFor('close export flyout', async () => {
68-
const isExportFlyoutOpen = await this.isExportFlyoutOpen();
69-
70-
if (!isExportFlyoutOpen) {
71-
return true; // It was already closed
72-
} else {
73-
await this.testSubjects.click('exportFlyoutCloseButton');
74-
// Wait for the flyout to actually close
75-
return !(await this.isExportFlyoutOpen());
76-
}
76+
// Wait for the flyout to actually close
77+
return !(await this.isExportFlyoutOpen());
7778
});
7879
}
7980

x-pack/platform/test/functional/apps/discover/group1/reporting.ts

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
1919
const kibanaServer = getService('kibanaServer');
2020
const browser = getService('browser');
2121
const retry = getService('retry');
22-
const { reporting, common, discover, timePicker, header, exports } = getPageObjects([
22+
const { reporting, common, discover, timePicker, exports } = getPageObjects([
2323
'reporting',
2424
'common',
2525
'discover',
2626
'timePicker',
2727
'share',
2828
'exports',
29-
'header',
3029
]);
3130
const monacoEditor = getService('monacoEditor');
3231
const filterBar = getService('filterBar');
@@ -104,7 +103,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
104103
await toasts.dismissAll();
105104

106105
await exports.clickExportTopNavButton();
106+
await retry.waitFor('the popover to be opened', async () => {
107+
return await exports.isExportPopoverOpen();
108+
});
107109
await reporting.selectExportItem('CSV');
110+
await retry.waitFor('the flyout to be opened', async () => {
111+
return await exports.isExportFlyoutOpen();
112+
});
108113
await reporting.clickGenerateReportButton();
109114
await exports.closeExportFlyout();
110115
await exports.clickExportTopNavButton();
@@ -120,7 +125,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
120125
const getReportPostUrl = async () => {
121126
// click 'Copy POST URL'
122127
await exports.clickExportTopNavButton();
128+
await retry.waitFor('the popover to be opened', async () => {
129+
return await exports.isExportPopoverOpen();
130+
});
123131
await reporting.selectExportItem('CSV');
132+
await retry.waitFor('the flyout to be opened', async () => {
133+
return await exports.isExportFlyoutOpen();
134+
});
124135
await reporting.clickGenerateReportButton();
125136
await reporting.copyReportingPOSTURLValueToClipboard();
126137

@@ -137,7 +148,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
137148
await esArchiver.emptyKibanaIndex();
138149
await reportingAPI.initEcommerce();
139150
await common.navigateToApp('discover');
151+
await discover.waitUntilTabIsLoaded();
140152
await discover.selectIndexPattern('ecommerce');
153+
await discover.waitUntilTabIsLoaded();
141154
});
142155

143156
after(async () => {
@@ -147,13 +160,20 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
147160

148161
it('is available if new', async () => {
149162
await reporting.openExportPopover();
163+
await retry.waitFor('the popover to be opened', async () => {
164+
return await exports.isExportPopoverOpen();
165+
});
150166
expect(await exports.isPopoverItemEnabled('CSV')).to.be(true);
151167
await reporting.openExportPopover();
152168
});
153169

154170
it('becomes available when saved', async () => {
155171
await discover.saveSearch('my search - expectEnabledGenerateReportButton');
172+
await discover.waitUntilTabIsLoaded();
156173
await reporting.openExportPopover();
174+
await retry.waitFor('the popover to be opened', async () => {
175+
return await exports.isExportPopoverOpen();
176+
});
157177
expect(await exports.isPopoverItemEnabled('CSV')).to.be(true);
158178
await reporting.openExportPopover();
159179
});
@@ -180,13 +200,18 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
180200

181201
beforeEach(async () => {
182202
await common.navigateToApp('discover');
203+
await discover.waitUntilTabIsLoaded();
183204
await discover.selectIndexPattern('ecommerce');
205+
await discover.waitUntilTabIsLoaded();
184206
});
185207

186208
it('generates a report with single timefilter', async () => {
187209
await discover.clickNewSearchButton();
210+
await discover.waitUntilTabIsLoaded();
188211
await timePicker.setCommonlyUsedTime('Last_24 hours');
212+
await discover.waitUntilTabIsLoaded();
189213
await discover.saveSearch('single-timefilter-search');
214+
await discover.waitUntilTabIsLoaded();
190215

191216
// get shared URL value
192217
const sharedURL = await browser.getCurrentUrl();
@@ -216,9 +241,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
216241

217242
it('generates a report from a new search with data: default', async () => {
218243
await discover.clickNewSearchButton();
244+
await discover.waitUntilTabIsLoaded();
219245
await reporting.setTimepickerInEcommerceDataRange();
246+
await discover.waitUntilTabIsLoaded();
220247

221248
await discover.saveSearch('my search - with data - expectReportCanBeCreated');
249+
await discover.waitUntilTabIsLoaded();
222250

223251
const res = await getReport();
224252
expect(res.status).to.equal(200);
@@ -230,7 +258,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
230258

231259
it('generates a report with no data', async () => {
232260
await reporting.setTimepickerInEcommerceNoDataRange();
261+
await discover.waitUntilTabIsLoaded();
233262
await discover.saveSearch('my search - no data - expectReportCanBeCreated');
263+
await discover.waitUntilTabIsLoaded();
234264

235265
const res = await getReport();
236266
expect(res.text).to.be(`\n`);
@@ -257,11 +287,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
257287

258288
it('generate a report using ES|QL', async () => {
259289
await discover.selectTextBaseLang();
260-
const testQuery = `from ecommerce | STATS total_sales = SUM(taxful_total_price) BY day_of_week | SORT total_sales DESC`;
290+
await discover.waitUntilTabIsLoaded();
261291

292+
const testQuery = `from ecommerce | STATS total_sales = SUM(taxful_total_price) BY day_of_week | SORT total_sales DESC`;
262293
await monacoEditor.setCodeEditorValue(testQuery);
263294
await testSubjects.click('querySubmitButton');
264-
await header.waitUntilLoadingHasFinished();
295+
await discover.waitUntilTabIsLoaded();
265296

266297
const res = await getReport();
267298
expect(res.status).to.equal(200);
@@ -288,15 +319,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
288319
});
289320

290321
await timePicker.setCommonlyUsedTime('Last_15 minutes');
322+
await discover.waitUntilTabIsLoaded();
291323
await discover.selectTextBaseLang();
292-
await header.waitUntilLoadingHasFinished();
293-
await discover.waitUntilSearchingHasFinished();
324+
await discover.waitUntilTabIsLoaded();
294325

295326
const testQuery = `from ${RECENT_DATA_INDEX_NAME} | sort timestamp | WHERE timestamp >= ?_tstart AND timestamp <= ?_tend | KEEP name, numberValue`;
296327
await monacoEditor.setCodeEditorValue(testQuery);
297328
await testSubjects.click('querySubmitButton');
298-
await header.waitUntilLoadingHasFinished();
299-
await discover.waitUntilSearchingHasFinished();
329+
await discover.waitUntilTabIsLoaded();
300330

301331
const reportPostUrl = await getReportPostUrl();
302332
expect(reportPostUrl).to.contain(`timeRange:(from:'2`); // not `from:now-15m`
@@ -329,7 +359,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
329359
});
330360
await reportingAPI.initLogs();
331361
await common.navigateToApp('discover');
362+
await discover.waitUntilTabIsLoaded();
332363
await discover.loadSavedSearch('Sparse Columns');
364+
await discover.waitUntilTabIsLoaded();
333365
});
334366

335367
after(async () => {
@@ -341,6 +373,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
341373
const fromTime = 'Jan 10, 2005 @ 00:00:00.000';
342374
const toTime = 'Dec 23, 2006 @ 00:00:00.000';
343375
await timePicker.setAbsoluteRange(fromTime, toTime);
376+
await discover.waitUntilTabIsLoaded();
344377
await retry.try(async () => {
345378
expect(await discover.getHitCount()).to.equal(TEST_DOC_COUNT.toString());
346379
});
@@ -361,12 +394,15 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
361394
const fromTime = 'Jun 22, 2019 @ 00:00:00.000';
362395
const toTime = 'Jun 26, 2019 @ 23:30:00.000';
363396
await timePicker.setAbsoluteRange(fromTime, toTime);
397+
await discover.waitUntilTabIsLoaded();
364398
};
365399

366400
before(async () => {
367401
await reportingAPI.initEcommerce();
368402
await common.navigateToApp('discover');
403+
await discover.waitUntilTabIsLoaded();
369404
await discover.selectIndexPattern('ecommerce');
405+
await discover.waitUntilTabIsLoaded();
370406
});
371407

372408
after(async () => {
@@ -383,6 +419,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
383419

384420
it('generates a report with data', async () => {
385421
await discover.loadSavedSearch('Ecommerce Data');
422+
await discover.waitUntilTabIsLoaded();
386423
await retry.try(async () => {
387424
expect(await discover.getHitCount()).to.equal('740');
388425
});
@@ -393,12 +430,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
393430

394431
it('generates a report with filtered data', async () => {
395432
await discover.loadSavedSearch('Ecommerce Data');
433+
await discover.waitUntilTabIsLoaded();
396434
await retry.try(async () => {
397435
expect(await discover.getHitCount()).to.equal('740');
398436
});
399437

400438
// filter
401439
await filterBar.addFilter({ field: 'category', operation: 'is', value: `Men's Shoes` });
440+
await discover.waitUntilTabIsLoaded();
402441
await retry.try(async () => {
403442
expect(await discover.getHitCount()).to.equal('154');
404443
});

x-pack/platform/test/serverless/functional/test_suites/discover/x_pack/reporting.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
3535
await toasts.dismissAll();
3636

3737
await PageObjects.exports.clickExportTopNavButton();
38+
await retry.waitFor('the popover to be opened', async () => {
39+
return await PageObjects.exports.isExportPopoverOpen();
40+
});
3841
await PageObjects.reporting.selectExportItem('CSV');
42+
await retry.waitFor('the flyout to be opened', async () => {
43+
return await PageObjects.exports.isExportFlyoutOpen();
44+
});
3945
await PageObjects.reporting.clickGenerateReportButton();
4046
await PageObjects.exports.closeExportFlyout();
4147
await PageObjects.exports.clickExportTopNavButton();
@@ -72,6 +78,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
7278
concurrency: 4,
7379
});
7480
await PageObjects.common.navigateToApp('discover');
81+
await PageObjects.discover.waitUntilTabIsLoaded();
7582
});
7683

7784
after(async () => {
@@ -85,6 +92,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
8592
describe('Check Available', () => {
8693
before(async () => {
8794
await PageObjects.discover.loadSavedSearch('Ecommerce Data');
95+
await PageObjects.discover.waitUntilTabIsLoaded();
8896
});
8997

9098
afterEach(async () => {
@@ -93,6 +101,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
93101

94102
it('is available if new', async () => {
95103
await PageObjects.reporting.openExportPopover();
104+
await retry.waitFor('the popover to be opened', async () => {
105+
return await PageObjects.exports.isExportPopoverOpen();
106+
});
96107
expect(await PageObjects.exports.isPopoverItemEnabled('CSV')).to.be(true);
97108
await PageObjects.reporting.openExportPopover();
98109
});
@@ -102,7 +113,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
102113
'my search - expectEnabledGenerateReportButton',
103114
true
104115
);
116+
await PageObjects.discover.waitUntilTabIsLoaded();
105117
await PageObjects.reporting.openExportPopover();
118+
await retry.waitFor('the popover to be opened', async () => {
119+
return await PageObjects.exports.isExportPopoverOpen();
120+
});
106121
expect(await PageObjects.exports.isPopoverItemEnabled('CSV')).to.be(true);
107122
await PageObjects.reporting.openExportPopover();
108123
});
@@ -111,10 +126,15 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
111126
describe('Generate CSV: new search', () => {
112127
it('generates a report from a new search with data: default', async () => {
113128
await PageObjects.discover.clickNewSearchButton();
129+
await PageObjects.discover.waitUntilTabIsLoaded();
114130
await PageObjects.reporting.setTimepickerInEcommerceDataRange();
131+
await PageObjects.discover.waitUntilTabIsLoaded();
115132
await PageObjects.unifiedFieldList.clickFieldListItemAdd('order_id');
133+
await PageObjects.discover.waitUntilTabIsLoaded();
116134
await PageObjects.discover.clickFieldSort('order_id', 'Sort A-Z');
135+
await PageObjects.discover.waitUntilTabIsLoaded();
117136
await PageObjects.discover.saveSearch('my search - with data - expectReportCanBeCreated');
137+
await PageObjects.discover.waitUntilTabIsLoaded();
118138

119139
const res = await getReport();
120140
expect(res.status).to.equal(200);
@@ -126,8 +146,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
126146

127147
it('generates a report with no data', async () => {
128148
await PageObjects.reporting.setTimepickerInEcommerceNoDataRange();
149+
await PageObjects.discover.waitUntilTabIsLoaded();
129150
await PageObjects.discover.clickNewSearchButton();
151+
await PageObjects.discover.waitUntilTabIsLoaded();
130152
await PageObjects.discover.saveSearch('my search - no data - expectReportCanBeCreated');
153+
await PageObjects.discover.waitUntilTabIsLoaded();
131154

132155
const res = await getReport({ timeout: 180_000 }); // 3 minutes
133156
expect(res.text).to.be(`\n`);
@@ -222,7 +245,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
222245
'x-pack/platform/test/serverless/fixtures/kbn_archives/reporting/logs'
223246
);
224247
await PageObjects.common.navigateToApp('discover');
248+
await PageObjects.discover.waitUntilTabIsLoaded();
225249
await PageObjects.discover.loadSavedSearch('Sparse Columns');
250+
await PageObjects.discover.waitUntilTabIsLoaded();
226251
});
227252

228253
after(async () => {
@@ -240,6 +265,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
240265
const fromTime = 'Jan 10, 2005 @ 00:00:00.000';
241266
const toTime = 'Dec 23, 2006 @ 00:00:00.000';
242267
await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime);
268+
await PageObjects.discover.waitUntilTabIsLoaded();
243269
await retry.try(async () => {
244270
expect(await PageObjects.discover.getHitCount()).to.equal(TEST_DOC_COUNT.toString());
245271
});
@@ -260,10 +286,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
260286
const fromTime = 'Jun 22, 2019 @ 00:00:00.000';
261287
const toTime = 'Jun 26, 2019 @ 23:30:00.000';
262288
await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime);
289+
await PageObjects.discover.waitUntilTabIsLoaded();
263290
};
264291

265292
before(async () => {
266293
await PageObjects.discover.loadSavedSearch('Ecommerce Data');
294+
await PageObjects.discover.waitUntilTabIsLoaded();
267295
});
268296

269297
beforeEach(async () => {
@@ -283,6 +311,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
283311

284312
it('generates a report with data', async () => {
285313
await PageObjects.discover.loadSavedSearch('Ecommerce Data');
314+
await PageObjects.discover.waitUntilTabIsLoaded();
286315
await retry.try(async () => {
287316
expect(await PageObjects.discover.getHitCount()).to.equal('740');
288317
});
@@ -293,12 +322,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
293322

294323
it('generates a report with filtered data', async () => {
295324
await PageObjects.discover.loadSavedSearch('Ecommerce Data');
325+
await PageObjects.discover.waitUntilTabIsLoaded();
296326
await retry.try(async () => {
297327
expect(await PageObjects.discover.getHitCount()).to.equal('740');
298328
});
299329

300330
// filter
301331
await filterBar.addFilter({ field: 'category', operation: 'is', value: `Men's Shoes` });
332+
await PageObjects.discover.waitUntilTabIsLoaded();
302333
await retry.try(async () => {
303334
expect(await PageObjects.discover.getHitCount()).to.equal('154');
304335
});

0 commit comments

Comments
 (0)