mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[AO] Fix failed functional test - Observability alerts Alerts table Flyout Can be closed (#148882)
Closes #145835
## Summary
Fix `Observability alerts Alerts table Flyout Can be closed` by retrying
closing flyout if it is still open. This issue happens rarely (only once
in the main and 3 times in other branches during the last 3 months -
[link](cb7380fb
-67fe-5c41-873d-003d1a407dad?_g=(filters:!(('$state':(store:globalState),meta:(alias:!n,disabled:!f,index:'1f96f3c7-e086-5f46-a8e0-40d2b811928c',key:failure.name,negate:!f,params:(query:'ObservabilityApp%20Observability%20alerts%20Alerts%20table%20Flyout%20Can%20be%20closed'),type:phrase),query:(match_phrase:(failure.name:'ObservabilityApp%20Observability%20alerts%20Alerts%20table%20Flyout%20Can%20be%20closed')))),refreshInterval:(pause:!t,value:0),time:(from:now-30d%2Fd,to:now))))
By checking the
[logs](https://buildkite.com/elastic/kibana-on-merge/builds/23841), it
seems in these cases, it checks to see if the flyout is closed but for
some reason, it is still open, so I added a retry based on @spalger 's
suggestion.
Flaky test runner[200]:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/1746
Flaky test runner[50]:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/1750
(After last commit)
This commit is contained in:
parent
5d6d5bb58b
commit
26d0cc8ff0
2 changed files with 6 additions and 6 deletions
|
@ -17,12 +17,11 @@ export class FlyoutService extends FtrService {
|
|||
public async close(dataTestSubj: string): Promise<void> {
|
||||
this.log.debug('Closing flyout', dataTestSubj);
|
||||
const flyoutElement = await this.testSubjects.find(dataTestSubj);
|
||||
const closeBtn = await flyoutElement.findByCssSelector('[aria-label*="Close"]');
|
||||
await closeBtn.click();
|
||||
await this.retry.waitFor(
|
||||
'flyout closed',
|
||||
async () => !(await this.testSubjects.exists(dataTestSubj, { timeout: 1000 }))
|
||||
);
|
||||
await this.retry.try(async () => {
|
||||
const closeBtn = await flyoutElement.findByCssSelector('[aria-label*="Close"]');
|
||||
await closeBtn.click();
|
||||
await this.testSubjects.missingOrFail(dataTestSubj);
|
||||
});
|
||||
}
|
||||
|
||||
public async ensureClosed(dataTestSubj: string): Promise<void> {
|
||||
|
|
|
@ -466,6 +466,7 @@ export class WebElementWrapper {
|
|||
* @return {Promise<WebElementWrapper>}
|
||||
*/
|
||||
public async findByCssSelector(selector: string) {
|
||||
this.logger.debug(`WebElementWrapper.findByCssSelector(${selector})`);
|
||||
return await this.retryCall(async function findByCssSelector(wrapper) {
|
||||
return wrapper._wrap(
|
||||
await wrapper._webElement.findElement(wrapper.By.css(selector)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue