unskip Failing test: Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/dashboard/group1/preserve_url·ts (#167836)

closes https://github.com/elastic/kibana/issues/166900

Flaky test runner
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3295

Flaky test because `await appsMenu.clickLink('Dashboard', { category:
'kibana' });` is opening dashboard application. Looking at the screen
shot, kibana stays on home page. Looking at the logs, the context menu
is opened and Dashboard link is clicked. PR resolves flakiness by adding
retry around appsMenu.clickLink.

<img width="600" alt="Screenshot 2023-10-02 at 3 52 19 PM"
src="5f3535c0-94d2-48c4-8d9b-15c4433bfe81">

<img width="600" alt="Screenshot 2023-10-02 at 3 52 42 PM"
src="9fc890e2-9f98-4078-87a1-d5cec8cee0e6">

---------

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Nathan Reese 2023-10-03 17:01:37 -06:00 committed by GitHub
parent 5c72df1d47
commit f17b2ab8c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 7 deletions

View file

@ -43,6 +43,7 @@ export class DashboardPageObject extends FtrService {
private readonly header = this.ctx.getPageObject('header');
private readonly visualize = this.ctx.getPageObject('visualize');
private readonly discover = this.ctx.getPageObject('discover');
private readonly appsMenu = this.ctx.getService('appsMenu');
private readonly logstashIndex = this.config.get('esTestCluster.ccs')
? 'ftr-remote:logstash-*'
@ -65,6 +66,17 @@ export class DashboardPageObject extends FtrService {
await this.common.navigateToApp(this.APP_ID);
}
public async navigateToAppFromAppsMenu() {
await this.retry.try(async () => {
await this.appsMenu.clickLink('Dashboard', { category: 'kibana' });
await this.header.waitUntilLoadingHasFinished();
const currentUrl = await this.browser.getCurrentUrl();
if (!currentUrl.includes('app/dashboard')) {
throw new Error(`Not in dashboard application after clicking 'Dashboard' in apps menu`);
}
});
}
public async expectAppStateRemovedFromURL() {
this.retry.try(async () => {
const url = await this.browser.getCurrentUrl();

View file

@ -10,13 +10,11 @@ import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const PageObjects = getPageObjects(['common', 'dashboard', 'spaceSelector', 'header']);
const appsMenu = getService('appsMenu');
const globalNav = getService('globalNav');
const kibanaServer = getService('kibanaServer');
const spacesService = getService('spaces');
// Failing: See https://github.com/elastic/kibana/issues/166900
describe.skip('preserve url', function () {
describe('preserve url', function () {
const anotherSpace = 'another-space';
before(async () => {
@ -39,7 +37,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.dashboard.navigateToApp();
await PageObjects.dashboard.loadSavedDashboard('A Dashboard');
await PageObjects.common.navigateToApp('home');
await appsMenu.clickLink('Dashboard', { category: 'kibana' });
await PageObjects.dashboard.navigateToAppFromAppsMenu();
await PageObjects.dashboard.loadSavedDashboard('A Dashboard');
await PageObjects.header.waitUntilLoadingHasFinished();
const activeTitle = await globalNav.getLastBreadcrumb();
@ -56,7 +54,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.spaceSelector.expectHomePage('another-space');
// other space
await appsMenu.clickLink('Dashboard', { category: 'kibana' });
await PageObjects.dashboard.navigateToAppFromAppsMenu();
await PageObjects.dashboard.loadSavedDashboard('A Dashboard in another space');
await PageObjects.spaceSelector.openSpacesNav();
@ -64,7 +62,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.spaceSelector.expectHomePage('default');
// default space
await appsMenu.clickLink('Dashboard', { category: 'kibana' });
await PageObjects.dashboard.navigateToAppFromAppsMenu();
await PageObjects.dashboard.waitForRenderComplete();
const activeTitleDefaultSpace = await globalNav.getLastBreadcrumb();
expect(activeTitleDefaultSpace).to.be('A Dashboard');
@ -74,7 +72,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.spaceSelector.expectHomePage('another-space');
// other space
await appsMenu.clickLink('Dashboard', { category: 'kibana' });
await PageObjects.dashboard.navigateToAppFromAppsMenu();
await PageObjects.dashboard.waitForRenderComplete();
const activeTitleOtherSpace = await globalNav.getLastBreadcrumb();
expect(activeTitleOtherSpace).to.be('A Dashboard in another space');