@@ -25,15 +25,19 @@ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
25
25
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil' ;
26
26
import { Dashboard } from '../../pageobjects/dashboard/Dashboard' ;
27
27
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS' ;
28
+ import { Logger } from '../../utils/Logger' ;
29
+ import { ShellExecutor } from '../../utils/ShellExecutor' ;
30
+ import { ShellString } from 'shelljs' ;
28
31
29
32
suite ( `DevConsole Integration ${ BASE_TEST_CONSTANTS . TEST_ENVIRONMENT } ` , function ( ) : void {
30
33
let ocpImportPage : OcpImportFromGitPage ;
31
34
let ocpApplicationPage : OcpApplicationPage ;
32
-
35
+ let parentGUID : string = '' ;
33
36
const projectAndFileTests : ProjectAndFileTests = e2eContainer . get ( CLASSES . ProjectAndFileTests ) ;
34
37
const dashboard : Dashboard = e2eContainer . get ( CLASSES . Dashboard ) ;
35
38
const loginTests : LoginTests = e2eContainer . get ( CLASSES . LoginTests ) ;
36
39
const workspaceHandlingTests : WorkspaceHandlingTests = e2eContainer . get ( CLASSES . WorkspaceHandlingTests ) ;
40
+ const shellExecutor : ShellExecutor = e2eContainer . get ( CLASSES . ShellExecutor ) ;
37
41
const browserTabsUtil : BrowserTabsUtil = e2eContainer . get ( CLASSES . BrowserTabsUtil ) ;
38
42
const ocpMainPage : OcpMainPage = e2eContainer . get ( CLASSES . OcpMainPage ) ;
39
43
const kubernetesCommandLineToolsExecutor : KubernetesCommandLineToolsExecutor = e2eContainer . get (
@@ -47,12 +51,18 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
47
51
48
52
suiteSetup ( 'Create new empty project using ocp' , function ( ) : void {
49
53
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
+ }
50
59
kubernetesCommandLineToolsExecutor . createProject ( projectName ) ;
51
60
} ) ;
52
61
53
62
loginTests . loginIntoOcpConsole ( ) ;
54
63
55
64
test ( 'Select test project and Developer role on DevConsole' , async function ( ) : Promise < void > {
65
+ parentGUID = await browserTabsUtil . getCurrentWindowHandle ( ) ;
56
66
await ocpMainPage . selectDeveloperRole ( ) ;
57
67
await ocpMainPage . selectProject ( projectName ) ;
58
68
} ) ;
@@ -106,16 +116,27 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
106
116
) . not . undefined ;
107
117
} ) ;
108
118
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 ) ;
111
121
await browserTabsUtil . closeAllTabsExceptCurrent ( ) ;
122
+ await ocpMainPage . clickOnAppLauncherAndDevSpaceItem ( ) ;
123
+ await loginTests . loginIntoChe ( ) ;
124
+ await dashboard . waitPage ( ) ;
112
125
} ) ;
113
126
114
127
suiteTeardown ( 'Delete project using ocp' , function ( ) : void {
115
128
kubernetesCommandLineToolsExecutor . workspaceName =
116
129
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
+ }
119
140
} ) ;
120
141
121
142
suiteTeardown ( 'Unregister running workspace' , function ( ) : void {
0 commit comments