From 45a65306cc4b98c996f3f1c3d8908ade5c5de6b6 Mon Sep 17 00:00:00 2001 From: spalger Date: Sat, 25 Jan 2020 00:38:19 -0700 Subject: [PATCH] make test less flaky by retrying if list is rerendered --- .../services/dashboard/add_panel.js | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/test/functional/services/dashboard/add_panel.js b/test/functional/services/dashboard/add_panel.js index e390fd918eaee..91e7c15c4f1d9 100644 --- a/test/functional/services/dashboard/add_panel.js +++ b/test/functional/services/dashboard/add_panel.js @@ -54,14 +54,23 @@ export function DashboardAddPanelProvider({ getService, getPageObjects }) { async addEveryEmbeddableOnCurrentPage() { log.debug('addEveryEmbeddableOnCurrentPage'); const itemList = await testSubjects.find('savedObjectFinderItemList'); - const embeddableRows = await itemList.findAllByCssSelector('li'); const embeddableList = []; - for (let i = 0; i < embeddableRows.length; i++) { - embeddableList.push(await embeddableRows[i].getVisibleText()); - await embeddableRows[i].click(); - await PageObjects.common.closeToast(); - } - log.debug(`Added ${embeddableRows.length} embeddables`); + await retry.try(async () => { + const embeddableRows = await itemList.findAllByCssSelector('li'); + for (let i = 0; i < embeddableRows.length; i++) { + const name = await embeddableRows[i].getVisibleText(); + + if (embeddableList.includes(name)) { + // already added this one + continue; + } + + await embeddableRows[i].click(); + await PageObjects.common.closeToast(); + embeddableList.push(name); + } + }); + log.debug(`Added ${embeddableList.length} embeddables`); return embeddableList; }