Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix flaky test by verifying that a search has been saved by checking for a success toast #21302

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
15466c2
Add testSubjects.existOrFail() helper. Verify a search has been saved…
cjcenizal Jul 26, 2018
af8089b
Apply pattern to other places where we're expecting success toasts.
cjcenizal Jul 26, 2018
3302926
Simplify existsOrFail.
cjcenizal Jul 26, 2018
eedebd0
Use terser testSubjects.click() method.
cjcenizal Jul 26, 2018
614cebd
Remove closeToast method. Adding a visualization confirms and closes …
cjcenizal Jul 26, 2018
5d19276
Remove CSS file.
cjcenizal Jul 26, 2018
6eedadf
Fix broken assertions about saveDashboard returning true. Remove unne…
cjcenizal Jul 27, 2018
6caf740
Add brief sleep to testSubjects.click to allow hidden elements to bec…
cjcenizal Jul 27, 2018
f3334ef
Fix broken assertions about clickCopyToClipboard returning true.
cjcenizal Jul 27, 2018
e752ec0
Add toasts service.
cjcenizal Jul 27, 2018
838e91e
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Jul 27, 2018
d6298a1
Fix dumb mistakes.
cjcenizal Jul 31, 2018
645a3c7
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Jul 31, 2018
4c26f4c
Fix RBAC tests by checking for presence of failure toast. Reduce exec…
cjcenizal Jul 31, 2018
8912ffe
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Jul 31, 2018
14e3e75
Wait for toast to be done animating in before dismissing it.
cjcenizal Jul 31, 2018
1260440
Skip flaky visualizations tests.
cjcenizal Jul 31, 2018
4b87d45
Fix dashboard tests which don't use saveDashboard method.
cjcenizal Aug 1, 2018
b05fd92
Fix flaky test by ignoring success toast due to heavy browser load.
cjcenizal Aug 1, 2018
9f74eef
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Aug 1, 2018
8e43781
Fix flaky full screen mode test by clicking on the button, not its text.
cjcenizal Aug 1, 2018
2b64fb8
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Aug 2, 2018
3847816
Rename ensureSaveSuccess to verifySaveSuccess.
cjcenizal Aug 2, 2018
10d7bfa
Re-enable linked saved searches test.
cjcenizal Aug 2, 2018
c953d42
Set absolute time in full screen mode test to allow it to be isolated…
cjcenizal Aug 3, 2018
7a5a82f
Add saveDashboardAndVerify method.
cjcenizal Aug 3, 2018
39bf935
Rename clickCopyToClipboard to clickCopyToClipboardAndVerify.
cjcenizal Aug 3, 2018
eb09cbe
Add saveVisualizationAndVerify method.
cjcenizal Aug 3, 2018
37e7864
Update reporting tests to use toasts service.
cjcenizal Aug 3, 2018
9998372
Temporarily remove all animations to see if this helps flakiness.
cjcenizal Aug 6, 2018
cb8212e
Use animation-duration instead of animation.
cjcenizal Aug 6, 2018
37ba74b
Merge remote-tracking branch 'upstream/master' into test-verify-saved…
cjcenizal Aug 10, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ exports[`is rendered 1`] = `
<button
aria-label="Exit full screen mode"
class="kuiButton exitFullScreenMode"
data-test-subj="exitFullScreenModeButton"
type="hollow"
>
<span
Expand All @@ -22,11 +23,9 @@ exports[`is rendered 1`] = `
<span>
<span
class="exitFullScreenModeLogo"
data-test-subj="exitFullScreenModeLogo"
/>
<span
class="exitFullScreenModeText"
data-test-subj="exitFullScreenModeText"
>
Exit full screen
<span
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,10 @@ export class ExitFullScreenButton extends PureComponent {
aria-label="Exit full screen mode"
className="exitFullScreenMode"
onClick={this.props.onExitFullScreenMode}
data-test-subj="exitFullScreenModeButton"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seemed more efficient and analogous to user behavior to click the button itself instead of one of its children.

>
<span className="exitFullScreenModeLogo" data-test-subj="exitFullScreenModeLogo"/>
<span className="exitFullScreenModeText" data-test-subj="exitFullScreenModeText">
<span className="exitFullScreenModeLogo" />
<span className="exitFullScreenModeText">
Exit full screen
<span className="kuiIcon fa fa-angle-left"/>
</span>
Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/notify/partials/toaster.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div class="toaster-container">
<ul class="toaster">
<li ng-repeat="notif in list" kbn-toast notif="notif">
<li ng-repeat="notif in list" kbn-toast notif="notif" data-test-subj="bootstrapToast">
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The old Bootstrap toasts are only used for errors now. This is a way to check for an error outcome.

<div ng-class="notif.getAlertClass()">

<span ng-show="notif.count > 1" class="euiBadge euiBadge--default">
Expand Down
8 changes: 8 additions & 0 deletions src/ui/public/styles/base.less
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
@import (reference) "~ui/styles/bootstrap/bootstrap";
@import "./react-input-range";

// NOTE: This is an experiment to see if functional tests are less flaky with animations disabled.
* {
-webkit-animation-duration: 0s !important;
animation-duration: 0s !important;
-webkit-transition-duration: 0s !important;
transition-duration: 0s !important;
}

.small {
font-size: 0.9em !important;
}
Expand Down
2 changes: 1 addition & 1 deletion test/functional/apps/dashboard/_bwc_shared_urls.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export default function ({ getService, getPageObjects }) {
});

it('loads a saved dashboard', async function () {
await PageObjects.dashboard.saveDashboard('saved with colors', { storeTimeWithDashboard: true });
await PageObjects.dashboard.saveDashboardAndVerify('saved with colors', { storeTimeWithDashboard: true });

const id = await PageObjects.dashboard.getDashboardIdFromCurrentUrl();
const url = `${kibanaBaseUrl}#/dashboard/${id}`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export default function ({ getService, getPageObjects }) {
await dashboardAddPanel.clickAddNewEmbeddableLink();
await PageObjects.visualize.clickAreaChart();
await PageObjects.visualize.clickNewSearch();
await PageObjects.visualize.saveVisualization('visualization from add new link');
await PageObjects.visualize.saveVisualizationAndVerify('visualization from add new link');

return retry.try(async () => {
const panelCount = await PageObjects.dashboard.getPanelCount();
Expand Down
2 changes: 1 addition & 1 deletion test/functional/apps/dashboard/_dashboard_filter_bar.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ export default function ({ getService, getPageObjects }) {
});

it('are preserved after saving a dashboard', async () => {
await PageObjects.dashboard.saveDashboard('with filters');
await PageObjects.dashboard.saveDashboardAndVerify('with filters');
await PageObjects.header.waitUntilLoadingHasFinished();

const filters = await PageObjects.dashboard.getFilters();
Expand Down
4 changes: 2 additions & 2 deletions test/functional/apps/dashboard/_dashboard_filtering.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ export default function ({ getService, getPageObjects }) {
await renderable.waitForRender();
await dashboardExpect.pieSliceCount(3);

await PageObjects.visualize.saveVisualization('Rendering Test: animal sounds pie');
await PageObjects.visualize.saveVisualizationAndVerify('Rendering Test: animal sounds pie');
await PageObjects.header.clickDashboard();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.dashboard.waitForRenderComplete();
Expand All @@ -256,7 +256,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.header.waitUntilLoadingHasFinished();
await dashboardExpect.pieSliceCount(1);

await PageObjects.visualize.saveVisualization('animal sounds pie');
await PageObjects.visualize.saveVisualizationAndVerify('animal sounds pie');
await PageObjects.header.clickDashboard();

await dashboardExpect.pieSliceCount(1);
Expand Down
8 changes: 4 additions & 4 deletions test/functional/apps/dashboard/_dashboard_listing.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function ({ getService, getPageObjects }) {

it('creates a new dashboard', async function () {
await PageObjects.dashboard.clickCreateDashboardPrompt();
await PageObjects.dashboard.saveDashboard(dashboardName);
await PageObjects.dashboard.saveDashboardAndVerify(dashboardName);

await PageObjects.dashboard.gotoDashboardLandingPage();
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(dashboardName);
Expand Down Expand Up @@ -90,7 +90,7 @@ export default function ({ getService, getPageObjects }) {
before(async () => {
await PageObjects.dashboard.clearSearchValue();
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.saveDashboard('Two Words');
await PageObjects.dashboard.saveDashboardAndVerify('Two Words');
});

it('matches on the first word', async function () {
Expand Down Expand Up @@ -168,7 +168,7 @@ export default function ({ getService, getPageObjects }) {

it('stays on listing page if title matches two dashboards', async function () {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.saveDashboard('two words', { needsConfirm: true });
await PageObjects.dashboard.saveDashboardAndVerify('two words', { needsConfirm: true });
await PageObjects.dashboard.gotoDashboardLandingPage();
const currentUrl = await remote.getCurrentUrl();
const newUrl = currentUrl + '&title=two%20words';
Expand All @@ -188,7 +188,7 @@ export default function ({ getService, getPageObjects }) {

it('matches a title with many special characters', async function () {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.saveDashboard('i am !@#$%^&*()_+~`,.<>{}[]; so special');
await PageObjects.dashboard.saveDashboardAndVerify('i am !@#$%^&*()_+~`,.<>{}[]; so special');
await PageObjects.dashboard.gotoDashboardLandingPage();
const currentUrl = await remote.getCurrentUrl();
// Need to encode that one.
Expand Down
19 changes: 10 additions & 9 deletions test/functional/apps/dashboard/_dashboard_save.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export default function ({ getService, getPageObjects }) {

it('warns on duplicate name for new dashboard', async function () {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.saveDashboard(dashboardName);
await PageObjects.dashboard.saveDashboardAndVerify(dashboardName);

let isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed();
expect(isWarningDisplayed).to.equal(false);
Expand All @@ -60,13 +60,15 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.dashboard.gotoDashboardLandingPage();
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.enterDashboardTitleAndClickSave(dashboardName);

await PageObjects.dashboard.clickSave();

// 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();
await Promise.all([
PageObjects.dashboard.verifySaveSuccess(),
// 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.
PageObjects.header.waitUntilLoadingHasFinished(),
]);

const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(dashboardName);
expect(countOfDashboards).to.equal(2);
Expand All @@ -77,8 +79,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.dashboard.selectDashboard(dashboardName);
await PageObjects.header.awaitGlobalLoadingIndicatorHidden();
await PageObjects.dashboard.clickEdit();
await PageObjects.dashboard.saveDashboard(dashboardName);

await PageObjects.dashboard.saveDashboardAndVerify(dashboardName);
const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed();
expect(isWarningDisplayed).to.equal(false);
}
Expand All @@ -95,7 +96,7 @@ export default function ({ getService, getPageObjects }) {
});

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

const isWarningDisplayed = await PageObjects.dashboard.isDuplicateTitleWarningDisplayed();
expect(isWarningDisplayed).to.equal(false);
Expand Down
12 changes: 4 additions & 8 deletions test/functional/apps/dashboard/_dashboard_snapshots.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,16 @@ export default function ({ getService, getPageObjects, updateBaselines }) {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.setTimepickerInLogstashDataRange();
await dashboardAddPanel.addVisualization('Rendering Test: tsvb-ts');
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method now closes its own toast.

await PageObjects.common.closeToast();

await PageObjects.dashboard.saveDashboard('tsvb');
await PageObjects.common.closeToast();
await PageObjects.dashboard.saveDashboardAndVerify('tsvb');

await PageObjects.dashboard.clickFullScreenMode();
await dashboardPanelActions.toggleExpandPanel();

await PageObjects.dashboard.waitForRenderComplete();
const percentSimilar = await screenshot.compareAgainstBaseline('tsvb_dashboard', updateBaselines);

await PageObjects.dashboard.clickExitFullScreenLogoButton();
await PageObjects.dashboard.clickExitFullScreenButton();

expect(percentSimilar).to.be.lessThan(0.05);
});
Expand All @@ -65,17 +63,15 @@ export default function ({ getService, getPageObjects, updateBaselines }) {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.setTimepickerInLogstashDataRange();
await dashboardAddPanel.addVisualization('Rendering Test: area with not filter');
await PageObjects.common.closeToast();
await PageObjects.dashboard.saveDashboard('area');
await PageObjects.common.closeToast();
await PageObjects.dashboard.saveDashboardAndVerify('area');

await PageObjects.dashboard.clickFullScreenMode();
await dashboardPanelActions.toggleExpandPanel();

await PageObjects.dashboard.waitForRenderComplete();
const percentSimilar = await screenshot.compareAgainstBaseline('area_chart', updateBaselines);

await PageObjects.dashboard.clickExitFullScreenLogoButton();
await PageObjects.dashboard.clickExitFullScreenButton();

// Testing some OS/browser differences were shown to cause .009 percent difference.
expect(percentSimilar).to.be.lessThan(0.05);
Expand Down
12 changes: 6 additions & 6 deletions test/functional/apps/dashboard/_dashboard_state.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();

await dashboardAddPanel.addVisualization(AREA_CHART_VIS_NAME);
await PageObjects.dashboard.saveDashboard('Overridden colors');
await PageObjects.dashboard.saveDashboardAndVerify('Overridden colors');

await PageObjects.dashboard.clickEdit();

await PageObjects.visualize.openLegendOptionColors('Count');
await PageObjects.visualize.selectNewLegendColorChoice('#EA6460');

await PageObjects.dashboard.saveDashboard('Overridden colors');
await PageObjects.dashboard.saveDashboardAndVerify('Overridden colors');

await PageObjects.dashboard.gotoDashboardLandingPage();
await PageObjects.dashboard.loadSavedDashboard('Overridden colors');
Expand All @@ -79,7 +79,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.dashboard.clickNewDashboard();

await dashboardAddPanel.addSavedSearch('my search');
await PageObjects.dashboard.saveDashboard('No local edits');
await PageObjects.dashboard.saveDashboardAndVerify('No local edits');

const inViewMode = await testSubjects.exists('dashboardEditMode');
expect(inViewMode).to.be(true);
Expand All @@ -101,7 +101,7 @@ export default function ({ getService, getPageObjects }) {
it('Saved search with column changes will not update when the saved object changes', async () => {
await PageObjects.discover.removeHeaderColumn('bytes');
await PageObjects.dashboard.clickEdit();
await PageObjects.dashboard.saveDashboard('Has local edits');
await PageObjects.dashboard.saveDashboardAndVerify('Has local edits');

await PageObjects.header.clickDiscover();
await PageObjects.discover.clickFieldListItemAdd('clientip');
Expand All @@ -123,7 +123,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();

await dashboardAddPanel.addVisualization('Visualization TileMap');
await PageObjects.dashboard.saveDashboard('No local edits');
await PageObjects.dashboard.saveDashboardAndVerify('No local edits');

await dashboardPanelActions.openInspector();
const tileMapData = await PageObjects.visualize.getInspectorTableData();
Expand All @@ -140,7 +140,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.visualize.clickGo();
await PageObjects.header.waitUntilLoadingHasFinished();

await PageObjects.visualize.saveVisualization('Visualization TileMap');
await PageObjects.visualize.saveVisualizationAndVerify('Visualization TileMap');

await PageObjects.header.clickDashboard();

Expand Down
9 changes: 3 additions & 6 deletions test/functional/apps/dashboard/_dashboard_time.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ export default function ({ getPageObjects, getService }) {
it('is saved', async () => {
await PageObjects.dashboard.clickNewDashboard();
await PageObjects.dashboard.addVisualizations([PageObjects.dashboard.getTestVisualizationNames()[0]]);
const isDashboardSaved = await PageObjects.dashboard.saveDashboard(dashboardName, { storeTimeWithDashboard: false });
expect(isDashboardSaved).to.eql(true);
await PageObjects.dashboard.saveDashboardAndVerify(dashboardName, { storeTimeWithDashboard: false });
});

it('Does not set the time picker on open', async () => {
Expand All @@ -62,8 +61,7 @@ export default function ({ getPageObjects, getService }) {
it('is saved with quick time', async function () {
await PageObjects.dashboard.clickEdit();
await PageObjects.header.setQuickTime('Today');
const isDashboardSaved = await PageObjects.dashboard.saveDashboard(dashboardName, { storeTimeWithDashboard: true });
expect(isDashboardSaved).to.eql(true);
await PageObjects.dashboard.saveDashboardAndVerify(dashboardName, { storeTimeWithDashboard: true });
});

it('sets quick time on open', async function () {
Expand All @@ -78,8 +76,7 @@ export default function ({ getPageObjects, getService }) {
it('is saved with absolute time', async function () {
await PageObjects.dashboard.clickEdit();
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
const isDashboardSaved = await PageObjects.dashboard.saveDashboard(dashboardName, { storeTimeWithDashboard: true });
expect(isDashboardSaved).to.eql(true);
await PageObjects.dashboard.saveDashboardAndVerify(dashboardName, { storeTimeWithDashboard: true });
});

it('sets absolute time on open', async function () {
Expand Down
10 changes: 8 additions & 2 deletions test/functional/apps/dashboard/_embeddable_rendering.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default function ({ getService, getPageObjects }) {
const remote = getService('remote');
const dashboardExpect = getService('dashboardExpect');
const dashboardAddPanel = getService('dashboardAddPanel');
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'visualize', 'discover']);
const PageObjects = getPageObjects(['dashboard', 'header', 'visualize', 'discover']);

const expectAllDataRenders = async () => {
await dashboardExpect.pieSliceCount(16);
Expand Down Expand Up @@ -114,7 +114,13 @@ export default function ({ getService, getPageObjects }) {
const panelCount = await PageObjects.dashboard.getPanelCount();
expect(panelCount).to.be(28);

await PageObjects.dashboard.saveDashboard('embeddable rendering test', { storeTimeWithDashboard: true });
// Saving a dashboard causes the panels to refresh, which can be heavy on the browser.
// If the re-render takes too long, then the toast might disappear before selenium
// gets a chance to interact with it. This can cause flakiness, so we'll just ignore the
// success toast this time.
await PageObjects.dashboard.saveDashboard('embeddable rendering test', {
storeTimeWithDashboard: true,
});
});

it('initial render test', async () => {
Expand Down
23 changes: 14 additions & 9 deletions test/functional/apps/dashboard/_full_screen_mode.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@ import expect from 'expect.js';

export default function ({ getService, getPageObjects }) {
const retry = getService('retry');
const remote = getService('remote');
const dashboardPanelActions = getService('dashboardPanelActions');
const PageObjects = getPageObjects(['dashboard', 'common']);
const PageObjects = getPageObjects(['dashboard', 'common', 'header']);

describe('full screen mode', async () => {
before(async () => {
await PageObjects.dashboard.loadSavedDashboard('few panels');

const fromTime = '2018-04-09 21:56:08.000';
const toTime = '2018-04-11 21:56:08.000';
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
});

it('option not available in edit mode', async () => {
Expand All @@ -37,7 +40,7 @@ export default function ({ getService, getPageObjects }) {
});

it('available in view mode', async () => {
await PageObjects.dashboard.saveDashboard('full screen test', { saveAsNew: true });
await PageObjects.dashboard.saveDashboardAndVerify('full screen test', { saveAsNew: true });
const exists = await PageObjects.dashboard.fullScreenModeMenuItemExists();
expect(exists).to.be(true);
});
Expand All @@ -55,21 +58,23 @@ export default function ({ getService, getPageObjects }) {
});

it('displays exit full screen logo button', async () => {
const exists = await PageObjects.dashboard.exitFullScreenLogoButtonExists();
const exists = await PageObjects.dashboard.exitFullScreenButtonExists();
expect(exists).to.be(true);
});

it('displays exit full screen logo button when panel is expanded', async () => {
await dashboardPanelActions.toggleExpandPanel();

const exists = await PageObjects.dashboard.exitFullScreenTextButtonExists();
const exists = await PageObjects.dashboard.exitFullScreenButtonExists();
expect(exists).to.be(true);
});

it('exits when the text button is clicked on', async () => {
const logoButton = await PageObjects.dashboard.getExitFullScreenLogoButton();
await remote.moveMouseTo(logoButton);
await PageObjects.dashboard.clickExitFullScreenTextButton();
it('exits when the full screen logo button is clicked on', async () => {
await retry.try(async () => {
await PageObjects.dashboard.exitFullScreenButtonExists();
});

await PageObjects.dashboard.clickExitFullScreenButton();

await retry.try(async () => {
const isChromeVisible = await PageObjects.common.isChromeVisible();
Expand Down
Loading