From aad46253f2495caf4d73f301a9d7e7c61ac1d922 Mon Sep 17 00:00:00 2001 From: Stacey Gammon Date: Tue, 18 Sep 2018 10:20:14 -0400 Subject: [PATCH] Use concrete assertions, not exists --- .../apps/dashboard/_dashboard_clone.js | 3 +-- .../apps/dashboard/_dashboard_save.js | 25 ++++++------------- .../functional/page_objects/dashboard_page.js | 12 +++++++-- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/test/functional/apps/dashboard/_dashboard_clone.js b/test/functional/apps/dashboard/_dashboard_clone.js index 0958ec47a74832..817d0e6dcd690d 100644 --- a/test/functional/apps/dashboard/_dashboard_clone.js +++ b/test/functional/apps/dashboard/_dashboard_clone.js @@ -61,8 +61,7 @@ export default function ({ getService, getPageObjects }) { it('and warns on duplicate name', async function () { await PageObjects.dashboard.confirmClone(); - const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(true); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: true }); }); it('and doesn\'t save', async () => { diff --git a/test/functional/apps/dashboard/_dashboard_save.js b/test/functional/apps/dashboard/_dashboard_save.js index 53dc69fd145c70..0b93733e361579 100644 --- a/test/functional/apps/dashboard/_dashboard_save.js +++ b/test/functional/apps/dashboard/_dashboard_save.js @@ -19,8 +19,7 @@ import expect from 'expect.js'; -export default function ({ getService, getPageObjects }) { - const retry = getService('retry'); +export default function ({ getPageObjects }) { const PageObjects = getPageObjects(['dashboard', 'header']); describe('dashboard save', function describeIndexTests() { @@ -38,15 +37,12 @@ export default function ({ getService, getPageObjects }) { await PageObjects.dashboard.clickNewDashboard(); await PageObjects.dashboard.saveDashboard(dashboardName); - let isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(false); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: false }); await PageObjects.dashboard.gotoDashboardLandingPage(); await PageObjects.dashboard.clickNewDashboard(); await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName); - - isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(true); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: true }); }); it('does not save on reject confirmation', async function () { @@ -79,8 +75,7 @@ export default function ({ getService, getPageObjects }) { await PageObjects.dashboard.switchToEditMode(); await PageObjects.dashboard.saveDashboard(dashboardName); - const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(false); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: false }); } ); @@ -88,8 +83,7 @@ export default function ({ getService, getPageObjects }) { await PageObjects.dashboard.switchToEditMode(); await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName, { saveAsNew: true }); - const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(true); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: true }); await PageObjects.dashboard.cancelSave(); }); @@ -97,19 +91,14 @@ export default function ({ getService, getPageObjects }) { it('Does not warn when only the prefix matches', async function () { await PageObjects.dashboard.saveDashboard(dashboardName.split(' ')[0]); - const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(false); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: false }); }); it('Warns when case is different', async function () { await PageObjects.dashboard.switchToEditMode(); await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName.toUpperCase()); - // We expect isWarningDisplayed to be open, hence the retry if not found. - await retry.try(async () => { - const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed(); - expect(isWarningDisplayed).to.equal(true); - }); + await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: true }); await PageObjects.dashboard.cancelSave(); }); diff --git a/test/functional/page_objects/dashboard_page.js b/test/functional/page_objects/dashboard_page.js index 8e0e7bb0ea4c56..ff4d210b9c32c3 100644 --- a/test/functional/page_objects/dashboard_page.js +++ b/test/functional/page_objects/dashboard_page.js @@ -169,8 +169,16 @@ export function DashboardPageProvider({ getService, getPageObjects }) { await testSubjects.setValue('clonedDashboardTitle', title); } - async isDuplicateTitleWarningDisplayed() { - return await testSubjects.exists('titleDupicateWarnMsg'); + /** + * Asserts that the duplicate title warning is either displayed or not displayed. + * @param { displayed: boolean } + */ + async expectDuplicateTitleWarningDisplayed({ displayed }) { + if (displayed) { + await testSubjects.existOrFail('titleDupicateWarnMsg'); + } else { + await testSubjects.missingOrFail('titleDupicateWarnMsg'); + } } async switchToEditMode() {