*Add stabilization parts to the test: it checks the existing test-project. It removes before the test, adds try/catch blocks for correct finishing all steps in afterAll block, adds verification of DevConsole integration from run-app. menu
### Screenshot/screencast of this PR
################## Launch Information ##################
TS_SELENIUM_BASE_URL: https://devspaces.apps.ocp417-mmusiie.crw-qe.com
TS_SELENIUM_HEADLESS: false
TS_SELENIUM_OCP_USERNAME: admin
TS_SELENIUM_EDITOR: che-code
TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: EmptyWorkspace
TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS: 1000
TS_SELENIUM_REPORT_FOLDER: ./report
TS_SELENIUM_EXECUTION_SCREENCAST: false
DELETE_SCREENCAST_IF_TEST_PASS: true
TS_SELENIUM_REMOTE_DRIVER_URL:
DELETE_WORKSPACE_ON_FAILED_TEST: false
TS_SELENIUM_LOG_LEVEL: TRACE
TS_SELENIUM_LAUNCH_FULLSCREEN: true
TS_COMMON_DASHBOARD_WAIT_TIMEOUT: 5000
TS_SELENIUM_START_WORKSPACE_TIMEOUT: 360000
TS_WAIT_LOADER_PRESENCE_TIMEOUT: 60000
TS_SAMPLE_LIST: Node.js MongoDB,Node.js Express,Java Lombok,Quarkus REST API,Python,.NET,C/C++,Go,PHP,Ansible
MOCHA_DIRECTORY is not set
USERSTORY: DevConsoleIntegration
to output timeout variables, set TS_SELENIUM_PRINT_TIMEOUT_VARIABLES to true
########################################################
‣ DriverHelper.getDriver
DevConsole Integration
▼ KubernetesCommandLineToolsExecutor.loginToOcp - oc - login to the "OC" client.
▼ KubernetesCommandLineToolsExecutor.getServerUrl - oc - get server api url.
▼ KubernetesCommandLineToolsExecutor.isUserLoggedIn - oc
▼ ShellExecutor.executeCommand - oc whoami && oc whoami --show-server=true
admin
https://api.ocp417-mmusiie.crw-qe.com:6443
▼ KubernetesCommandLineToolsExecutor.getServerUrl - oc - get server api url.
▼ KubernetesCommandLineToolsExecutor.loginToOcp - oc - user already logged
▼ ShellExecutor.executeCommand - oc get project devconsole-integration-test
Error from server (NotFound): namespaces "devconsole-integration-test" not found
▼ KubernetesCommandLineToolsExecutor.createProject - oc - create new project "devconsole-integration-test".
▼ ShellExecutor.executeCommand - oc new-project devconsole-integration-test -n admin-devspaces
Already on project "devconsole-integration-test" on server "https://api.ocp417-mmusiie.crw-qe.com:6443".
You can add applications to this project with the 'new-app' command. For example, try:
oc new-app rails-postgresql-example
to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.43 -- /agnhost serve-hostname
▼ BrowserTabsUtil.navigateTo - https://console-openshift-console.apps.ocp417-mmusiie.crw-qe.com
‣ DriverHelper.navigateToUrl
‣ DriverHelper.getDriver
▼ OcpUserLoginPage.login
▼ OcpLoginPage.isIdentityProviderLinkVisible
‣ DriverHelper.waitVisibilityBoolean - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.isVisible - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.wait - (5000 milliseconds)
‣ DriverHelper.isVisible - By(xpath, //a[text()="htpasswd"])
▼ OcpLoginPage.waitAndClickOnLoginProviderTitle
‣ DriverHelper.waitAndClick - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.waitVisibility - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.waitOpenShiftLoginWelcomePage
‣ DriverHelper.waitVisibility - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.enterUserNameOpenShift - "admin"
‣ DriverHelper.enterValue - By(css selector, *[id="inputUsername"]) text: admin
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputUsername"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="inputUsername"]) text: admin
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputUsername"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.enterPasswordOpenShift
‣ DriverHelper.enterValue - By(css selector, *[id="inputPassword"]) text: ***
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputPassword"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="inputPassword"]) text: ***
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputPassword"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.clickOnLoginButton
‣ DriverHelper.waitAndClick - By(css selector, button[type=submit])
‣ DriverHelper.waitVisibility - By(css selector, button[type=submit])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.waitDisappearanceOpenShiftLoginWelcomePage
‣ DriverHelper.waitDisappearance - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.waitDisappearanceBoolean - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.isVisible - By(xpath, //*[contains(text(), "Welcome")])
‣ BrowserTabsUtil.maximize
▼ BrowserTabsUtil.maximize - TS_SELENIUM_LAUNCH_FULLSCREEN is set to true, maximizing window.
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.getCurrentWindowHandle
‣ DriverHelper.getDriver
▼ OcpMainPage.selectDeveloperRole
▼ OcpMainPage.waitOpenMainPage
‣ DriverHelper.waitVisibility - By(css selector, *[id="page-main-header"])
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #3, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #4, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #5, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #6, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpMainPage.tryToSkipWebTour
‣ DriverHelper.isVisible - By(xpath, //*[text()="Skip tour"])
▼ OcpMainPage.tryToSkipWebTour - welcome tour modal dialog was not located
▼ OcpMainPage.clickOnSelectRoleButton
‣ DriverHelper.waitAndClick - By(xpath, //*[@data-test-id="perspective-switcher-toggle"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test-id="perspective-switcher-toggle"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpMainPage.selectRole - selecting role Developer
‣ DriverHelper.waitAndClick - By(xpath, //a//*[text()="Developer"])
‣ DriverHelper.waitVisibility - By(xpath, //a//*[text()="Developer"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpMainPage.tryToSkipWebTour
‣ DriverHelper.isVisible - By(xpath, //*[text()="Skip tour"])
▼ OcpMainPage.tryToSkipWebTour - welcome tour modal dialog was not located
▼ OcpMainPage.selectProject
‣ DriverHelper.waitAndClick - By(xpath, //div[@class="co-namespace-dropdown"]//button)
‣ DriverHelper.waitVisibility - By(xpath, //div[@class="co-namespace-dropdown"]//button)
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.enterValue - By(xpath, //*[@data-test="dropdown-text-filter"]) text: devconsole-integration-test
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitAndGetElementAttribute - By(xpath, //*[@data-test="dropdown-text-filter"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(xpath, //*[@data-test="dropdown-text-filter"]) text: devconsole-integration-test
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitAndGetElementAttribute - By(xpath, //*[@data-test="dropdown-text-filter"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="dropdown-text-filter"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAndClick - By(xpath, //button//*[text()="devconsole-integration-test"])
‣ DriverHelper.waitVisibility - By(xpath, //button//*[text()="devconsole-integration-test"])
‣ DriverHelper.waitVisibility - element is located and is visible.
✔ Select test project and Developer role on DevConsole
▼ OcpMainPage.openImportFromGitPage
▼ OcpMainPage.clickAddToProjectButton
‣ DriverHelper.waitAndClick - By(xpath, //*[@data-test-id="+Add-header"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test-id="+Add-header"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpMainPage.selectImportFromGitMethod
‣ DriverHelper.waitAndClick - By(xpath, //*[@data-test="item import-from-git"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test="item import-from-git"])
‣ DriverHelper.waitVisibility - element is located and is visible.
✔ Open import from git project page
▼ OcpImportFromGitPage.fitAndSubmitConfiguration
▼ OcpImportFromGitPage.enterGitRepoUrl
‣ DriverHelper.enterValue - By(css selector, *[id="form-input-git-url-field"]) text: https://github.com/crw-qe/summit-lab-spring-music.git
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-input-git-url-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="form-input-git-url-field"]) text: https://github.com/crw-qe/summit-lab-spring-music.git
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-input-git-url-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-url-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpImportFromGitPage.clickOnAdvancedOptionsButton
‣ DriverHelper.isVisible - By(xpath, //*[text()="Hide advanced Git options"])
‣ DriverHelper.waitAndClick - By(xpath, //*[text()="Show advanced Git options"]//ancestor::button)
‣ DriverHelper.waitVisibility - By(xpath, //*[text()="Show advanced Git options"]//ancestor::button)
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpImportFromGitPage.enterGitReference - "pipeline"
‣ DriverHelper.enterValue - By(css selector, *[id="form-input-git-ref-field"]) text: pipeline
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-input-git-ref-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="form-input-git-ref-field"]) text: pipeline
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-input-git-ref-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-input-git-ref-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpImportFromGitPage.selectBuilderImageImportStrategy
‣ DriverHelper.scrollToAndClick
‣ DriverHelper.scrollTo - By(xpath, //*[text()="Edit Import Strategy"]//ancestor::button)
‣ DriverHelper.waitPresence - By(xpath, //*[text()="Edit Import Strategy"]//ancestor::button)
‣ DriverHelper.waitPresence - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.scrollTo - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitPresence - By(xpath, //*[text()="Edit Import Strategy"]//ancestor::button)
‣ DriverHelper.getDriver
‣ DriverHelper.waitAndClick - By(xpath, //*[text()="Edit Import Strategy"]//ancestor::button)
‣ DriverHelper.waitVisibility - By(xpath, //*[text()="Edit Import Strategy"]//ancestor::button)
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.scrollToAndClick
‣ DriverHelper.scrollTo - By(xpath, //*[text()="Builder Image"]//parent::div//parent::div)
‣ DriverHelper.waitPresence - By(xpath, //*[text()="Builder Image"]//parent::div//parent::div)
‣ DriverHelper.getDriver
‣ DriverHelper.waitAndClick - By(xpath, //*[text()="Builder Image"]//parent::div//parent::div)
‣ DriverHelper.waitVisibility - By(xpath, //*[text()="Builder Image"]//parent::div//parent::div)
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpImportFromGitPage.addLabel - "app.openshift.io/runtime=spring"
‣ DriverHelper.scrollToAndClick
‣ DriverHelper.scrollTo - By(xpath, //button[text()="Labels"])
‣ DriverHelper.waitPresence - By(xpath, //button[text()="Labels"])
‣ DriverHelper.getDriver
‣ DriverHelper.waitAndClick - By(xpath, //button[text()="Labels"])
‣ DriverHelper.waitVisibility - By(xpath, //button[text()="Labels"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.scrollToAndEnterValue
‣ DriverHelper.scrollTo - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitPresence - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.getDriver
‣ DriverHelper.enterValue - By(css selector, *[id="form-selector-labels-field"]) text: app.openshift.io/runtime=spring
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-selector-labels-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="form-selector-labels-field"]) text: app.openshift.io/runtime=spring
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="form-selector-labels-field"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="form-selector-labels-field"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpImportFromGitPage.submitConfiguration
‣ DriverHelper.waitAndClick - By(xpath, //*[@data-test-id="submit-button"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@data-test-id="submit-button"])
‣ DriverHelper.waitVisibility - element is located and is visible.
✔ Fill and submit import data
▼ OcpApplicationPage.waitApplicationIcon
‣ DriverHelper.waitPresence - By(xpath, //*[@data-test-id="base-node-handler"])
‣ DriverHelper.waitPresence - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitPresence - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitPresence - polling timed out attempt #3, retrying with 1000ms timeout
✔ Wait until application creates
▼ OcpApplicationPage.waitAndOpenEditSourceCodeIcon
▼ BrowserTabsUtil.getCurrentWindowHandle
‣ DriverHelper.getDriver
‣ DriverHelper.waitAndClick - By(xpath, //*[@aria-label="Edit source code"])
‣ DriverHelper.waitVisibility - By(xpath, //*[@aria-label="Edit source code"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ BrowserTabsUtil.waitAndSwitchToAnotherWindow
‣ DriverHelper.waitUntilTrue
▼ BrowserTabsUtil.getAllWindowHandles
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.getAllWindowHandles
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.switchToWindow
‣ DriverHelper.getDriver
✔ Check if application has worked link "Open Source Code"
▼ Dashboard.waitLoader
‣ DriverHelper.waitAllPresence - By(xpath, //*[@data-testid="step-title"])
‣ DriverHelper.waitAllPresence - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #3, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #4, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #5, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #6, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #7, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #8, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #9, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #10, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #11, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #12, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #13, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #14, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #15, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #16, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #17, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #18, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #19, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #20, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #21, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #22, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #23, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #24, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #25, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #26, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #27, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #28, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #29, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #30, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #31, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #32, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #33, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #34, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #35, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #36, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #37, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #38, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #39, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #40, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #41, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #42, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #43, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #44, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #45, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #46, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #47, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #48, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #49, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #50, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #51, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #52, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #53, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #54, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #55, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #56, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #57, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #58, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #59, retrying with 1000ms timeout
‣ DriverHelper.waitAllPresence - polling timed out attempt #60, retrying with 1000ms timeout
▼ LoginTests.loginIntoChe
‣ BrowserTabsUtil.getCurrentUrl
‣ DriverHelper.getDriver
▼ Dashboard.waitPage
‣ DriverHelper.waitVisibility - By(xpath, //div[@id="page-sidebar"]//a[contains(text(), "Workspaces (")])
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #3, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #4, retrying with 1000ms timeout
[ERROR] DriverHelper.waitVisibility - failed with exception, out of attempts - TimeoutError: Waiting for element to be located By(xpath, //div[@id="page-sidebar"]//a[contains(text(), "Workspaces (")])
Wait timed out after 1063ms
▼ LoginTests.loginIntoChe - try to login into application
▼ RegularUserOcpCheLoginPage.login
‣ DriverHelper.waitAndClick - By(xpath, //div[@class="panel-login"]/div[contains(@class, "panel-content")]/form/button)
‣ DriverHelper.waitVisibility - By(xpath, //div[@class="panel-login"]/div[contains(@class, "panel-content")]/form/button)
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.isIdentityProviderLinkVisible
‣ DriverHelper.waitVisibilityBoolean - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.isVisible - By(xpath, //a[text()="htpasswd"])
▼ OcpLoginPage.waitAndClickOnLoginProviderTitle
‣ DriverHelper.waitAndClick - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.waitVisibility - By(xpath, //a[text()="htpasswd"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.waitOpenShiftLoginWelcomePage
‣ DriverHelper.waitVisibility - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.enterUserNameOpenShift - "admin"
‣ DriverHelper.enterValue - By(css selector, *[id="inputUsername"]) text: admin
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputUsername"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="inputUsername"]) text: admin
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputUsername"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputUsername"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.enterPasswordOpenShift
‣ DriverHelper.enterValue - By(css selector, *[id="inputPassword"]) text: ***
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.clear - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputPassword"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.type - By(css selector, *[id="inputPassword"]) text: ***
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAttributeValue - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitAndGetElementAttribute - By(css selector, *[id="inputPassword"]) attribute: 'value'
‣ DriverHelper.waitVisibility - By(css selector, *[id="inputPassword"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.clickOnLoginButton
‣ DriverHelper.waitAndClick - By(css selector, button[type=submit])
‣ DriverHelper.waitVisibility - By(css selector, button[type=submit])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ OcpLoginPage.waitDisappearanceOpenShiftLoginWelcomePage
‣ DriverHelper.waitDisappearance - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.waitDisappearanceBoolean - By(xpath, //*[contains(text(), "Welcome")])
‣ DriverHelper.isVisible - By(xpath, //*[contains(text(), "Welcome")])
▼ OcpLoginPage.isAuthorizeOpenShiftIdentityProviderPageVisible
‣ DriverHelper.isVisible - By(xpath, //h1[text()="Authorize Access"])
‣ BrowserTabsUtil.maximize
▼ BrowserTabsUtil.maximize - TS_SELENIUM_LAUNCH_FULLSCREEN is set to true, maximizing window.
‣ DriverHelper.getDriver
▼ Dashboard.waitStartingPageLoaderDisappearance
‣ DriverHelper.waitDisappearance - By(css selector, .main-page-loader)
‣ DriverHelper.waitDisappearanceBoolean - By(css selector, .main-page-loader)
‣ DriverHelper.isVisible - By(css selector, .main-page-loader)
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.isVisible - By(css selector, .main-page-loader)
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.isVisible - By(css selector, .main-page-loader)
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.isVisible - By(css selector, .main-page-loader)
‣ DriverHelper.wait - (1000 milliseconds)
✔ Login (79935ms)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - failed to obtain name from workspace start page, element not visible yet. Retrying.
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - failed to obtain name from workspace start page, element not visible yet. Retrying.
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - failed to obtain name from workspace start page, element not visible yet. Retrying.
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - failed to obtain name from workspace start page, element not visible yet. Retrying.
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - failed to obtain name from workspace start page, element not visible yet. Retrying.
‣ DriverHelper.wait - (1000 milliseconds)
‣ DriverHelper.getDriver
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - obtained starting workspace getText():Starting workspace spring-music
‣ WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - trimmed workspace name from getText():spring-music
• WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage - obtained workspace name from workspace loader page: spring-music
✔ Obtain workspace name from workspace loader page
▼ registerRunningWorkspace - with workspaceName:spring-music
✔ Registering the running workspace
▼ ProjectAndFileTests.waitWorkspaceReadinessForCheCodeEditor - waiting for editor.
‣ DriverHelper.waitVisibility - By(css selector, .monaco-workbench)
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #3, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #4, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #5, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #6, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #7, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #8, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #9, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #10, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #11, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #12, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #13, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #14, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #15, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #16, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #17, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #18, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #19, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ ProjectAndFileTests.waitWorkspaceReadinessForCheCodeEditor - editor was opened in 29383 seconds.
✔ Check if application source code opens in workspace
▼ Function.getProjectNameFromGitUrl - https://github.com/crw-qe/summit-lab-spring-music.git
▼ Function.getProjectNameFromGitUrl - summit-lab-spring-music
▼ ProjectAndFileTests.getProjectViewSession
‣ DriverHelper.waitVisibility - By(css selector, .monaco-list-row)
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ ProjectAndFileTests.getProjectTreeItem - summit-lab-spring-music
‣ DriverHelper.waitVisibility - By(xpath, .//div[@role='treeitem' and @aria-level='2'])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ ProjectAndFileTests.getProjectTreeItem - devfile.yaml
‣ DriverHelper.waitVisibility - By(xpath, .//div[@role='treeitem' and @aria-level='2'])
‣ DriverHelper.waitVisibility - element is located and is visible.
✔ Check if project and files imported
▼ BrowserTabsUtil.switchToWindow
‣ DriverHelper.getDriver
‣ BrowserTabsUtil.closeAllTabsExceptCurrent
▼ BrowserTabsUtil.getAllWindowHandles
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.getCurrentWindowHandle
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.switchToWindow
‣ DriverHelper.getDriver
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.switchToWindow
‣ DriverHelper.getDriver
▼ OcpMainPage.clickOnAppLauncherAndDevSpaceItem - click on app launcher menu
▼ BrowserTabsUtil.getCurrentWindowHandle
‣ DriverHelper.getDriver
‣ DriverHelper.waitAndClick - By(css selector, nav[data-test-id='application-launcher'])
‣ DriverHelper.waitVisibility - By(css selector, nav[data-test-id='application-launcher'])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitAndClick - By(xpath, //span[contains(.,'Red Hat OpenShift Dev Spaces')])
‣ DriverHelper.waitVisibility - By(xpath, //span[contains(.,'Red Hat OpenShift Dev Spaces')])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ BrowserTabsUtil.waitAndSwitchToAnotherWindow
‣ DriverHelper.waitUntilTrue
▼ BrowserTabsUtil.getAllWindowHandles
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.getAllWindowHandles
‣ DriverHelper.getDriver
▼ BrowserTabsUtil.switchToWindow
‣ DriverHelper.getDriver
▼ LoginTests.loginIntoChe
‣ BrowserTabsUtil.getCurrentUrl
‣ DriverHelper.getDriver
▼ Dashboard.waitPage
‣ DriverHelper.waitVisibility - By(xpath, //div[@id="page-sidebar"]//a[contains(text(), "Workspaces (")])
‣ DriverHelper.waitVisibility - polling timed out attempt #1, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - polling timed out attempt #2, retrying with 1000ms timeout
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitVisibility - By(xpath, //div[@id="page-sidebar"]//a[text()="Create Workspace"])
‣ DriverHelper.waitVisibility - element is located and is visible.
▼ LoginTests.loginIntoChe - user already logged in
▼ Dashboard.waitPage
‣ DriverHelper.waitVisibility - By(xpath, //div[@id="page-sidebar"]//a[contains(text(), "Workspaces (")])
‣ DriverHelper.waitVisibility - element is located and is visible.
‣ DriverHelper.waitVisibility - By(xpath, //div[@id="page-sidebar"]//a[text()="Create Workspace"])
‣ DriverHelper.waitVisibility - element is located and is visible.
✔ Check redirection to DevSpaces from App launcher
▼ KubernetesCommandLineToolsExecutor.deleteDevWorkspace - oc - delete 'spring-music' workspace
▼ ShellExecutor.executeCommand - oc patch dw spring-music -n admin-devspaces -p '{ "metadata": { "finalizers": null }}' --type merge || true
devworkspace.workspace.devfile.io/spring-music patched
▼ ShellExecutor.executeCommand - oc delete dw spring-music -n admin-devspaces || true
devworkspace.workspace.devfile.io "spring-music" deleted
▼ ShellExecutor.executeCommand - oc delete dwt che-code-spring-music -n admin-devspaces || true
Error from server (NotFound): devworkspacetemplates.workspace.devfile.io "che-code-spring-music" not found
▼ KubernetesCommandLineToolsExecutor.deleteProject - oc - delete "devconsole-integration-test".
▼ ShellExecutor.executeCommand - oc delete project devconsole-integration-test -n admin-devspaces
Warning: deleting cluster-scoped resources, not scoped to the provided namespace
project.project.openshift.io "devconsole-integration-test" deleted
▼ at /home/mmusiien/che-projects/che/tests/e2e/specs/MochaHooks.ts:39:12 - delete workspace name
11 passing (3m)
What does this PR do?
*Add stabilization parts to the test: it checks the existing test-project. It removes before the test, adds try/catch blocks for correct finishing all steps in afterAll block, adds verification of DevConsole integration from run-app. menu
What issues does this PR fix or reference?
https://issues.redhat.com/projects/CRW/issues/CRW-7591
How to test this PR?
run as usual
PR Checklist
As the author of this Pull Request I made sure that:
What issues does this PR fix or reference
andHow to test this PR
completedReviewers
Reviewers, please comment how you tested the PR when approving it.