From 6e5398f9ef285d6a7b720f3c4427eecd9fdbdc42 Mon Sep 17 00:00:00 2001 From: Patrick Seidensal Date: Wed, 21 Aug 2019 14:21:42 +0200 Subject: [PATCH] mgr/dashboard: disable selenium promise manager and migrate `protractor.conf.js` to use async/await. Fixes: https://tracker.ceph.com/issues/40693 Signed-off-by: Patrick Seidensal --- .../mgr/dashboard/frontend/protractor.conf.js | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/protractor.conf.js b/src/pybind/mgr/dashboard/frontend/protractor.conf.js index 7898ef8d17c..5418c376017 100644 --- a/src/pybind/mgr/dashboard/frontend/protractor.conf.js +++ b/src/pybind/mgr/dashboard/frontend/protractor.conf.js @@ -4,6 +4,7 @@ const { SpecReporter } = require('jasmine-spec-reporter'); exports.config = { + SELENIUM_PROMISE_MANAGER: false, allScriptsTimeout: 11000, specs: [ './e2e/**/*.e2e-spec.ts' @@ -40,7 +41,7 @@ exports.config = { clearFoldersBeforeTest: true }], - onPrepare() { + async onPrepare() { browser.manage().timeouts().implicitlyWait(360000); require('ts-node').register({ @@ -48,21 +49,21 @@ exports.config = { }); jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - browser.get('/#/login'); + await browser.get('/#/login'); - browser.driver.findElement(by.name('username')).clear(); - browser.driver.findElement(by.name('username')).sendKeys(browser.params.login.user); - browser.driver.findElement(by.name('password')).clear(); - browser.driver.findElement(by.name('password')).sendKeys(browser.params.login.password); + await browser.driver.findElement(by.name('username')).clear(); + await browser.driver.findElement(by.name('username')).sendKeys(browser.params.login.user); + await browser.driver.findElement(by.name('password')).clear(); + await browser.driver.findElement(by.name('password')).sendKeys(browser.params.login.password); - browser.driver.findElement(by.css('input[type="submit"]')).click(); + await browser.driver.findElement(by.css('input[type="submit"]')).click(); - return global.browser.getProcessedConfig().then(function(config) { + global.browser.getProcessedConfig().then(async (config) => { // Login takes some time, so wait until it's done. // For the test app's login, we know it's done when it redirects to // dashboard. - return browser.driver.wait(function() { - return browser.driver.getCurrentUrl().then(function(url) { + return await browser.driver.wait(async () => { + return await browser.driver.getCurrentUrl().then((url) => { return /dashboard/.test(url); }); }); -- 2.39.5