Skip to content

Commit

Permalink
Need to wait till save finishes or the page may redirect the url afte…
Browse files Browse the repository at this point in the history
…r the page has navigated away
  • Loading branch information
stacey-gammon committed Feb 17, 2017
1 parent b4ea9ed commit cd7e135
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 40 deletions.
73 changes: 39 additions & 34 deletions test/functional/apps/dashboard/_dashboard_save.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,41 +39,46 @@ bdd.describe('dashboard save', function describeIndexTests() {

await PageObjects.common.clickConfirmOnModal();

// This is important since saving a new dashboard will cause a refresh of the page. We have to
// wait till it finishes reloading or it might reload the url after simulating the
// dashboard landing page click.
await PageObjects.header.waitUntilLoadingHasFinished();

const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(dashboardName);
expect(countOfDashboards).to.equal(2);
});
//
// bdd.it('Does not warn when saving a duplicate title that remains unchanged for an existing dashboard', async function() {
// await PageObjects.dashboard.clickDashboardByLinkText(dashboardName);
// await PageObjects.header.isGlobalLoadingIndicatorHidden();
// await PageObjects.dashboard.saveDashboard(dashboardName);
//
// const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
// expect(isConfirmOpen).to.equal(false);
// });
//
// bdd.it('Warns when saving a duplicate title that remains unchanged when Save as New Dashboard is checked', async function() {
// await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName, { saveAsNew: true });
//
// const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
// expect(isConfirmOpen).to.equal(true);
//
// await PageObjects.common.clickCancelOnModal();
// });
//
// bdd.it('Does not warn when only the prefix matches', async function() {
// await PageObjects.dashboard.saveDashboard(dashboardName.split(' ')[0]);
//
// const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
// expect(isConfirmOpen).to.equal(false);
// });
//
// bdd.it('Warns when case is different', async function() {
// await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName.toUpperCase());
//
// const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
// expect(isConfirmOpen).to.equal(true);
//
// await PageObjects.common.clickCancelOnModal();
// });

bdd.it('Does not warn when saving a duplicate title that remains unchanged for an existing dashboard', async function() {
await PageObjects.dashboard.clickDashboardByLinkText(dashboardName);
await PageObjects.header.isGlobalLoadingIndicatorHidden();
await PageObjects.dashboard.saveDashboard(dashboardName);

const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
expect(isConfirmOpen).to.equal(false);
});

bdd.it('Warns when saving a duplicate title that remains unchanged when Save as New Dashboard is checked', async function() {
await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName, { saveAsNew: true });

const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
expect(isConfirmOpen).to.equal(true);

await PageObjects.common.clickCancelOnModal();
});

bdd.it('Does not warn when only the prefix matches', async function() {
await PageObjects.dashboard.saveDashboard(dashboardName.split(' ')[0]);

const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
expect(isConfirmOpen).to.equal(false);
});

bdd.it('Warns when case is different', async function() {
await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName.toUpperCase());

const isConfirmOpen = await PageObjects.common.isConfirmModalOpen();
expect(isConfirmOpen).to.equal(true);

await PageObjects.common.clickCancelOnModal();
});
});
6 changes: 0 additions & 6 deletions test/support/page_objects/dashboard_page.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,11 @@ export default class DashboardPage {
const onPage = await this.onDashboardLandingPage();
if (!onPage) {
await PageObjects.common.try(async () => {
PageObjects.common.debug('gotoDashboardLandingPage: Trying to find dashboard landing page link');
const goToDashboardLink = await PageObjects.common.findByCssSelector('a[href="#/dashboard"]');
PageObjects.common.debug('gotoDashboardLandingPage: Click dashboard landing page link');
await goToDashboardLink.click();
// Once the searchFilter can be found, we know the page finished loading.
const searchFilter = await PageObjects.common.findTestSubject('searchFilter');
PageObjects.common.debug('gotoDashboardLandingPage: search filter found? ' + searchFilter);
});
await PageObjects.common.saveScreenshot('dashboard-should-be-on-landing-page');
}
}

Expand Down Expand Up @@ -199,9 +195,7 @@ export default class DashboardPage {

await PageObjects.common.try(async () => {
const searchFilter = await PageObjects.common.findTestSubject('searchFilter');
PageObjects.common.debug('searchForDashboardWithName: search Filter object found: ' + searchFilter);
await searchFilter.click();
await PageObjects.common.saveScreenshot('searchForDashboardWithName-after-click');
// Note: this replacement of - to space is to preserve original logic but I'm not sure why or if it's needed.
await searchFilter.type(dashName.replace('-',' '));
});
Expand Down

0 comments on commit cd7e135

Please sign in to comment.