@@ -25,15 +25,19 @@ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
2525import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil' ;
2626import { Dashboard } from '../../pageobjects/dashboard/Dashboard' ;
2727import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS' ;
28+ import { Logger } from '../../utils/Logger' ;
29+ import { ShellExecutor } from '../../utils/ShellExecutor' ;
30+ import { ShellString } from 'shelljs' ;
2831
2932suite ( `DevConsole Integration ${ BASE_TEST_CONSTANTS . TEST_ENVIRONMENT } ` , function ( ) : void {
3033 let ocpImportPage : OcpImportFromGitPage ;
3134 let ocpApplicationPage : OcpApplicationPage ;
32-
35+ let parentGUID : string = '' ;
3336 const projectAndFileTests : ProjectAndFileTests = e2eContainer . get ( CLASSES . ProjectAndFileTests ) ;
3437 const dashboard : Dashboard = e2eContainer . get ( CLASSES . Dashboard ) ;
3538 const loginTests : LoginTests = e2eContainer . get ( CLASSES . LoginTests ) ;
3639 const workspaceHandlingTests : WorkspaceHandlingTests = e2eContainer . get ( CLASSES . WorkspaceHandlingTests ) ;
40+ const shellExecutor : ShellExecutor = e2eContainer . get ( CLASSES . ShellExecutor ) ;
3741 const browserTabsUtil : BrowserTabsUtil = e2eContainer . get ( CLASSES . BrowserTabsUtil ) ;
3842 const ocpMainPage : OcpMainPage = e2eContainer . get ( CLASSES . OcpMainPage ) ;
3943 const kubernetesCommandLineToolsExecutor : KubernetesCommandLineToolsExecutor = e2eContainer . get (
@@ -47,12 +51,18 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
4751
4852 suiteSetup ( 'Create new empty project using ocp' , function ( ) : void {
4953 kubernetesCommandLineToolsExecutor . loginToOcp ( ) ;
54+ // delete the test project on a cluster if it has not been deleted properly in the previous run
55+ const expectedProject : ShellString = shellExecutor . executeCommand ( `oc get project ${ projectName } ` ) ;
56+ if ( expectedProject . stderr . length === 0 ) {
57+ kubernetesCommandLineToolsExecutor . deleteProject ( projectName ) ;
58+ }
5059 kubernetesCommandLineToolsExecutor . createProject ( projectName ) ;
5160 } ) ;
5261
5362 loginTests . loginIntoOcpConsole ( ) ;
5463
5564 test ( 'Select test project and Developer role on DevConsole' , async function ( ) : Promise < void > {
65+ parentGUID = await browserTabsUtil . getCurrentWindowHandle ( ) ;
5666 await ocpMainPage . selectDeveloperRole ( ) ;
5767 await ocpMainPage . selectProject ( projectName ) ;
5868 } ) ;
@@ -106,16 +116,27 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
106116 ) . not . undefined ;
107117 } ) ;
108118
109- suiteTeardown ( 'Open dashboard and close all other tabs ', async function ( ) : Promise < void > {
110- await dashboard . openDashboard ( ) ;
119+ test ( 'Check redirection to DevSpaces from App launcher ', async function ( ) : Promise < void > {
120+ await browserTabsUtil . switchToWindow ( parentGUID ) ;
111121 await browserTabsUtil . closeAllTabsExceptCurrent ( ) ;
122+ await ocpMainPage . clickOnAppLauncherAndDevSpaceItem ( ) ;
123+ await loginTests . loginIntoChe ( ) ;
124+ await dashboard . waitPage ( ) ;
112125 } ) ;
113126
114127 suiteTeardown ( 'Delete project using ocp' , function ( ) : void {
115128 kubernetesCommandLineToolsExecutor . workspaceName =
116129 WorkspaceHandlingTests . getWorkspaceName ( ) !== '' ? WorkspaceHandlingTests . getWorkspaceName ( ) : 'spring-music' ;
117- kubernetesCommandLineToolsExecutor . deleteDevWorkspace ( ) ;
118- kubernetesCommandLineToolsExecutor . deleteProject ( projectName ) ;
130+ try {
131+ kubernetesCommandLineToolsExecutor . deleteDevWorkspace ( ) ;
132+ } catch ( err ) {
133+ Logger . error ( `Error while deleting workspace: ${ err } ` ) ;
134+ }
135+ try {
136+ kubernetesCommandLineToolsExecutor . deleteProject ( projectName ) ;
137+ } catch ( err ) {
138+ Logger . error ( `Cannot delete the project: ${ err } ` ) ;
139+ }
119140 } ) ;
120141
121142 suiteTeardown ( 'Unregister running workspace' , function ( ) : void {
0 commit comments