@eclipse-che/che-e2e 7.120.0-next-176265c → 7.120.0-next-8f85f13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/EDITOR_CONSTANTS.ts +120 -0
- package/dist/constants/EDITOR_CONSTANTS.js +114 -0
- package/dist/constants/EDITOR_CONSTANTS.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/specs/dashboard-samples/{StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js → StartWorkspaceUsingDesktopEditors.spec.js} +82 -45
- package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +1 -0
- package/index.ts +1 -0
- package/package.json +1 -1
- package/specs/dashboard-samples/{StartWorkspaceUsingVSCodeDesktopSshEditor.spec.ts → StartWorkspaceUsingDesktopEditors.spec.ts} +102 -56
- package/dist/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.js +0 -127
- package/dist/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js.map +0 -1
- package/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.ts +0 -154
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/** *******************************************************************
|
|
2
|
+
* copyright (c) 2026 Red Hat, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
|
|
11
|
+
export type EditorType = 'vscode' | 'intellij';
|
|
12
|
+
|
|
13
|
+
export interface EditorConfig {
|
|
14
|
+
readonly environmentId: string;
|
|
15
|
+
readonly xpath: string;
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly type: EditorType;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const ALL_EDITORS: Map<string, EditorConfig> = new Map([
|
|
21
|
+
[
|
|
22
|
+
'VSCODE_DESKTOP_SSH_EDITOR',
|
|
23
|
+
{
|
|
24
|
+
environmentId: 'VSCODE_DESKTOP_SSH_EDITOR',
|
|
25
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]',
|
|
26
|
+
name: 'VSCode Desktop SSH',
|
|
27
|
+
type: 'vscode'
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
[
|
|
31
|
+
'CLION_EDITOR',
|
|
32
|
+
{
|
|
33
|
+
environmentId: 'CLION_EDITOR',
|
|
34
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-clion-server/latest"]',
|
|
35
|
+
name: 'CLion',
|
|
36
|
+
type: 'intellij'
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
[
|
|
40
|
+
'GOLAND_EDITOR',
|
|
41
|
+
{
|
|
42
|
+
environmentId: 'GOLAND_EDITOR',
|
|
43
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-goland-server/latest"]',
|
|
44
|
+
name: 'GoLand',
|
|
45
|
+
type: 'intellij'
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
'INTELLIJ_IDEA_EDITOR',
|
|
50
|
+
{
|
|
51
|
+
environmentId: 'INTELLIJ_IDEA_EDITOR',
|
|
52
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-idea-server/latest"]',
|
|
53
|
+
name: 'IntelliJ IDEA',
|
|
54
|
+
type: 'intellij'
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
'PHPSTORM_EDITOR',
|
|
59
|
+
{
|
|
60
|
+
environmentId: 'PHPSTORM_EDITOR',
|
|
61
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-phpstorm-server/latest"]',
|
|
62
|
+
name: 'PhpStorm',
|
|
63
|
+
type: 'intellij'
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
[
|
|
67
|
+
'PYCHARM_EDITOR',
|
|
68
|
+
{
|
|
69
|
+
environmentId: 'PYCHARM_EDITOR',
|
|
70
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-pycharm-server/latest"]',
|
|
71
|
+
name: 'PyCharm',
|
|
72
|
+
type: 'intellij'
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
'RIDER_EDITOR',
|
|
77
|
+
{
|
|
78
|
+
environmentId: 'RIDER_EDITOR',
|
|
79
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-rider-server/latest"]',
|
|
80
|
+
name: 'Rider',
|
|
81
|
+
type: 'intellij'
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
[
|
|
85
|
+
'RUBYMINE_EDITOR',
|
|
86
|
+
{
|
|
87
|
+
environmentId: 'RUBYMINE_EDITOR',
|
|
88
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-rubymine-server/latest"]',
|
|
89
|
+
name: 'RubyMine',
|
|
90
|
+
type: 'intellij'
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
[
|
|
94
|
+
'WEBSTORM_EDITOR',
|
|
95
|
+
{
|
|
96
|
+
environmentId: 'WEBSTORM_EDITOR',
|
|
97
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-webstorm-server/latest"]',
|
|
98
|
+
name: 'WebStorm',
|
|
99
|
+
type: 'intellij'
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
[
|
|
103
|
+
'KIRO_EDITOR',
|
|
104
|
+
{
|
|
105
|
+
environmentId: 'KIRO_EDITOR',
|
|
106
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-code-sshd-kiro/latest"]',
|
|
107
|
+
name: 'Kiro',
|
|
108
|
+
type: 'vscode'
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
[
|
|
112
|
+
'JETBRAINS_SSH_EDITOR',
|
|
113
|
+
{
|
|
114
|
+
environmentId: 'JETBRAINS_SSH_EDITOR',
|
|
115
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/jetbrains-sshd/latest"]',
|
|
116
|
+
name: 'JetBrains Toolbox App',
|
|
117
|
+
type: 'intellij'
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
]);
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2026 Red Hat, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made
|
|
6
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
7
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
8
|
+
*
|
|
9
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
10
|
+
**********************************************************************/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ALL_EDITORS = void 0;
|
|
13
|
+
exports.ALL_EDITORS = new Map([
|
|
14
|
+
[
|
|
15
|
+
'VSCODE_DESKTOP_SSH_EDITOR',
|
|
16
|
+
{
|
|
17
|
+
environmentId: 'VSCODE_DESKTOP_SSH_EDITOR',
|
|
18
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]',
|
|
19
|
+
name: 'VSCode Desktop SSH',
|
|
20
|
+
type: 'vscode'
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
'CLION_EDITOR',
|
|
25
|
+
{
|
|
26
|
+
environmentId: 'CLION_EDITOR',
|
|
27
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-clion-server/latest"]',
|
|
28
|
+
name: 'CLion',
|
|
29
|
+
type: 'intellij'
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
[
|
|
33
|
+
'GOLAND_EDITOR',
|
|
34
|
+
{
|
|
35
|
+
environmentId: 'GOLAND_EDITOR',
|
|
36
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-goland-server/latest"]',
|
|
37
|
+
name: 'GoLand',
|
|
38
|
+
type: 'intellij'
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
'INTELLIJ_IDEA_EDITOR',
|
|
43
|
+
{
|
|
44
|
+
environmentId: 'INTELLIJ_IDEA_EDITOR',
|
|
45
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-idea-server/latest"]',
|
|
46
|
+
name: 'IntelliJ IDEA',
|
|
47
|
+
type: 'intellij'
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'PHPSTORM_EDITOR',
|
|
52
|
+
{
|
|
53
|
+
environmentId: 'PHPSTORM_EDITOR',
|
|
54
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-phpstorm-server/latest"]',
|
|
55
|
+
name: 'PhpStorm',
|
|
56
|
+
type: 'intellij'
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
[
|
|
60
|
+
'PYCHARM_EDITOR',
|
|
61
|
+
{
|
|
62
|
+
environmentId: 'PYCHARM_EDITOR',
|
|
63
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-pycharm-server/latest"]',
|
|
64
|
+
name: 'PyCharm',
|
|
65
|
+
type: 'intellij'
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
[
|
|
69
|
+
'RIDER_EDITOR',
|
|
70
|
+
{
|
|
71
|
+
environmentId: 'RIDER_EDITOR',
|
|
72
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-rider-server/latest"]',
|
|
73
|
+
name: 'Rider',
|
|
74
|
+
type: 'intellij'
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
'RUBYMINE_EDITOR',
|
|
79
|
+
{
|
|
80
|
+
environmentId: 'RUBYMINE_EDITOR',
|
|
81
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-rubymine-server/latest"]',
|
|
82
|
+
name: 'RubyMine',
|
|
83
|
+
type: 'intellij'
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
[
|
|
87
|
+
'WEBSTORM_EDITOR',
|
|
88
|
+
{
|
|
89
|
+
environmentId: 'WEBSTORM_EDITOR',
|
|
90
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-webstorm-server/latest"]',
|
|
91
|
+
name: 'WebStorm',
|
|
92
|
+
type: 'intellij'
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
'KIRO_EDITOR',
|
|
97
|
+
{
|
|
98
|
+
environmentId: 'KIRO_EDITOR',
|
|
99
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/che-code-sshd-kiro/latest"]',
|
|
100
|
+
name: 'Kiro',
|
|
101
|
+
type: 'vscode'
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
[
|
|
105
|
+
'JETBRAINS_SSH_EDITOR',
|
|
106
|
+
{
|
|
107
|
+
environmentId: 'JETBRAINS_SSH_EDITOR',
|
|
108
|
+
xpath: '//*[@id="editor-selector-card-che-incubator/jetbrains-sshd/latest"]',
|
|
109
|
+
name: 'JetBrains Toolbox App',
|
|
110
|
+
type: 'intellij'
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
]);
|
|
114
|
+
//# sourceMappingURL=EDITOR_CONSTANTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EDITOR_CONSTANTS.js","sourceRoot":"","sources":["../../constants/EDITOR_CONSTANTS.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAW3D,QAAA,WAAW,GAA8B,IAAI,GAAG,CAAC;IAC7D;QACC,2BAA2B;QAC3B;YACC,aAAa,EAAE,2BAA2B;YAC1C,KAAK,EAAE,oEAAoE;YAC3E,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,QAAQ;SACd;KACD;IACD;QACC,cAAc;QACd;YACC,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE,uEAAuE;YAC9E,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,eAAe;QACf;YACC,aAAa,EAAE,eAAe;YAC9B,KAAK,EAAE,wEAAwE;YAC/E,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,sBAAsB;QACtB;YACC,aAAa,EAAE,sBAAsB;YACrC,KAAK,EAAE,sEAAsE;YAC7E,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,iBAAiB;QACjB;YACC,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,0EAA0E;YACjF,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,gBAAgB;QAChB;YACC,aAAa,EAAE,gBAAgB;YAC/B,KAAK,EAAE,yEAAyE;YAChF,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,cAAc;QACd;YACC,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE,uEAAuE;YAC9E,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,iBAAiB;QACjB;YACC,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,0EAA0E;YACjF,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,iBAAiB;QACjB;YACC,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,0EAA0E;YACjF,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;SAChB;KACD;IACD;QACC,aAAa;QACb;YACC,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,yEAAyE;YAChF,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;SACd;KACD;IACD;QACC,sBAAsB;QACtB;YACC,aAAa,EAAE,sBAAsB;YACrC,KAAK,EAAE,qEAAqE;YAC5E,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,UAAU;SAChB;KACD;CACD,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -86,6 +86,7 @@ __exportStar(require("./tests-library/WorkspaceHandlingTests"), exports);
|
|
|
86
86
|
__exportStar(require("./constants/API_TEST_CONSTANTS"), exports);
|
|
87
87
|
__exportStar(require("./constants/BASE_TEST_CONSTANTS"), exports);
|
|
88
88
|
__exportStar(require("./constants/CHROME_DRIVER_CONSTANTS"), exports);
|
|
89
|
+
__exportStar(require("./constants/EDITOR_CONSTANTS"), exports);
|
|
89
90
|
__exportStar(require("./constants/FACTORY_TEST_CONSTANTS"), exports);
|
|
90
91
|
__exportStar(require("./constants/MOCHA_CONSTANTS"), exports);
|
|
91
92
|
__exportStar(require("./constants/MONACO_CONSTANTS"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,0EAAwD;AACxD,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,8EAA4D;AAC5D,6EAA2D;AAC3D,iDAA+B;AAC/B,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,2EAAyD;AACzD,0EAAwD;AACxD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,yEAAuD;AACvD,mEAAiD;AACjD,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,yEAAuD;AACvD,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,+EAA6D;AAC7D,8EAA4D;AAC5D,qFAAmE;AACnE,6EAA2D;AAC3D,mFAAiE;AACjE,iFAA+D;AAC/D,gFAA8D;AAC9D,2FAAyE;AACzE,6EAA2D;AAC3D,+EAA6D;AAC7D,sEAAoD;AACpD,4EAA0D;AAC1D,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,kEAAgD;AAChD,sEAAoD;AACpD,qEAAmD;AACnD,8DAA4C;AAC5C,+DAA6C;AAC7C,8DAA4C;AAC5C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,0EAAwD;AACxD,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,8EAA4D;AAC5D,6EAA2D;AAC3D,iDAA+B;AAC/B,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,2EAAyD;AACzD,0EAAwD;AACxD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,yEAAuD;AACvD,mEAAiD;AACjD,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,yEAAuD;AACvD,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,+EAA6D;AAC7D,8EAA4D;AAC5D,qFAAmE;AACnE,6EAA2D;AAC3D,mFAAiE;AACjE,iFAA+D;AAC/D,gFAA8D;AAC9D,2FAAyE;AACzE,6EAA2D;AAC3D,+EAA6D;AAC7D,sEAAoD;AACpD,4EAA0D;AAC1D,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,kEAAgD;AAChD,sEAAoD;AACpD,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,+DAA6C;AAC7C,8DAA4C;AAC5C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C"}
|
|
@@ -15,18 +15,37 @@ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingT
|
|
|
15
15
|
const chai_1 = require("chai");
|
|
16
16
|
const Logger_1 = require("../../utils/Logger");
|
|
17
17
|
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const EDITOR_CONSTANTS_1 = require("../../constants/EDITOR_CONSTANTS");
|
|
19
|
+
suite('Check all editors with all samples', function () {
|
|
20
|
+
this.timeout(24000000);
|
|
20
21
|
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
21
22
|
const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
|
|
22
23
|
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
23
24
|
const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
24
25
|
const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
|
|
25
|
-
const vsCodeDesktopSshEditor = '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]';
|
|
26
26
|
const useExtensionSwitcher = '//label[@class="switch"]';
|
|
27
|
-
const
|
|
27
|
+
const intellijTitleXpath = '/html/body/h1';
|
|
28
|
+
const vsCodeTitleXpath = '//div[@class="header-title"]';
|
|
28
29
|
let currentTabHandle = 'undefined';
|
|
29
|
-
const
|
|
30
|
+
const pollingForCheckTitleVSCode = 100;
|
|
31
|
+
const pollingForCheckTitleIntelliJ = 500;
|
|
32
|
+
// filter editors based on environment variables
|
|
33
|
+
const selectAllEditors = process.env.SELECT_ALL_EDITORS === 'true';
|
|
34
|
+
let editorsForCheck;
|
|
35
|
+
if (selectAllEditors) {
|
|
36
|
+
editorsForCheck = Array.from(EDITOR_CONSTANTS_1.ALL_EDITORS.values());
|
|
37
|
+
Logger_1.Logger.info('SELECT_ALL_EDITORS is true - running tests for all editors');
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
editorsForCheck = Array.from(EDITOR_CONSTANTS_1.ALL_EDITORS.values()).filter((editor) => {
|
|
41
|
+
const envValue = process.env[editor.environmentId];
|
|
42
|
+
return envValue === 'true';
|
|
43
|
+
});
|
|
44
|
+
Logger_1.Logger.info(`Running tests for selected editors: ${editorsForCheck.map((e) => e.name).join(', ')}`);
|
|
45
|
+
if (editorsForCheck.length === 0) {
|
|
46
|
+
chai_1.assert.fail('No editors selected via environment variables');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
30
49
|
const samplesForCheck = [
|
|
31
50
|
'Empty Workspace',
|
|
32
51
|
'JBoss EAP 8.0',
|
|
@@ -42,11 +61,13 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
|
|
|
42
61
|
];
|
|
43
62
|
const gitRepoUrlsToCheck = [
|
|
44
63
|
'https://github.com/crw-qe/quarkus-api-example-public/tree/ubi8-latest',
|
|
45
|
-
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
64
|
+
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal',
|
|
65
|
+
'https://github.com/crw-qe/ubi10-based-sample-public/tree/main'
|
|
46
66
|
];
|
|
47
67
|
const gitRepoUrlsToCheckAirgap = [
|
|
48
68
|
'https://gh.crw-qe.com/test-automation-only/ubi8/tree/ubi8-latest',
|
|
49
|
-
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
69
|
+
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal',
|
|
70
|
+
'https://gh.crw-qe.com/test-automation-only/ubi10-based-sample-public/tree/main'
|
|
50
71
|
];
|
|
51
72
|
suiteSetup('Login into Che', async function () {
|
|
52
73
|
await loginTests.loginIntoChe();
|
|
@@ -60,64 +81,80 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
|
|
|
60
81
|
function clearCurrentTabHandle() {
|
|
61
82
|
currentTabHandle = 'undefined';
|
|
62
83
|
}
|
|
63
|
-
async function
|
|
64
|
-
|
|
65
|
-
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
66
|
-
await dashboard.clickCreateWorkspaceButton();
|
|
67
|
-
if (isUrl) {
|
|
68
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath, pollingForCheckTitle);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath, pollingForCheckTitle);
|
|
72
|
-
}
|
|
73
|
-
// read page
|
|
84
|
+
async function verifyVSCodeEditor() {
|
|
85
|
+
Logger_1.Logger.debug();
|
|
74
86
|
const pageTextBeforeUseExtensionSwitcher = await driverHelper.getDriver().executeScript('return document.body.innerText;');
|
|
75
|
-
// click on "Use Extension" switcher
|
|
76
87
|
await clickOnElementByXpath(useExtensionSwitcher);
|
|
77
|
-
// read page
|
|
78
88
|
const pageTextAfterUseExtensionSwitcher = await driverHelper.getDriver().executeScript('return document.body.innerText;');
|
|
79
|
-
// checks for "Install extensions" state
|
|
80
89
|
(0, chai_1.expect)(pageTextBeforeUseExtensionSwitcher).contains('Install the following VS Code extensions');
|
|
81
|
-
Logger_1.Logger.
|
|
90
|
+
Logger_1.Logger.debug('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
|
|
82
91
|
(0, chai_1.expect)(pageTextBeforeUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running');
|
|
83
|
-
Logger_1.Logger.
|
|
84
|
-
// checks for SSH state
|
|
92
|
+
Logger_1.Logger.debug('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found before "Use Extension" clicked');
|
|
85
93
|
(0, chai_1.expect)(pageTextAfterUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running');
|
|
86
|
-
Logger_1.Logger.
|
|
94
|
+
Logger_1.Logger.debug('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found after "Use Extension" clicked');
|
|
87
95
|
(0, chai_1.expect)(pageTextAfterUseExtensionSwitcher).contains('oc port-forward -n admin-devspaces');
|
|
88
|
-
Logger_1.Logger.
|
|
96
|
+
Logger_1.Logger.debug('"oc port-forward -n admin-devspaces" was found');
|
|
89
97
|
(0, chai_1.expect)(pageTextAfterUseExtensionSwitcher)
|
|
90
98
|
.contains('-----BEGIN OPENSSH PRIVATE KEY-----')
|
|
91
99
|
.and.contains('-----END OPENSSH PRIVATE KEY-----');
|
|
92
|
-
Logger_1.Logger.
|
|
100
|
+
Logger_1.Logger.debug('SSH private key (BEGIN and END markers) was found');
|
|
93
101
|
(0, chai_1.expect)(pageTextAfterUseExtensionSwitcher)
|
|
94
102
|
.contains('HostName')
|
|
95
103
|
.and.contains('User')
|
|
96
104
|
.and.contains('Port')
|
|
97
105
|
.and.contains('IdentityFile')
|
|
98
106
|
.and.contains('UserKnownHostsFile');
|
|
99
|
-
Logger_1.Logger.
|
|
107
|
+
Logger_1.Logger.debug('SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found');
|
|
108
|
+
}
|
|
109
|
+
async function verifyIntelliJEditor(titleXpath) {
|
|
110
|
+
Logger_1.Logger.debug();
|
|
111
|
+
const headerText = await workspaceHandlingTests.getTextFromUIElementByXpath(titleXpath);
|
|
112
|
+
(0, chai_1.expect)('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
|
|
113
|
+
Logger_1.Logger.debug('Workspace title verified for IntelliJ editor: ' + headerText);
|
|
114
|
+
}
|
|
115
|
+
async function testWorkspaceStartup(editorXpath, editorType, sampleNameOrUrl, isUrl) {
|
|
116
|
+
await dashboard.openDashboard();
|
|
117
|
+
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
118
|
+
await dashboard.clickCreateWorkspaceButton();
|
|
119
|
+
const pollingForCheckTitle = editorType === 'vscode' ? pollingForCheckTitleVSCode : pollingForCheckTitleIntelliJ;
|
|
120
|
+
const titleXpath = editorType === 'vscode' ? vsCodeTitleXpath : intellijTitleXpath;
|
|
121
|
+
if (isUrl) {
|
|
122
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editorXpath, sampleNameOrUrl, titleXpath, pollingForCheckTitle);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(editorXpath, sampleNameOrUrl, titleXpath, pollingForCheckTitle);
|
|
126
|
+
}
|
|
127
|
+
if (editorType === 'vscode') {
|
|
128
|
+
await verifyVSCodeEditor();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
await verifyIntelliJEditor(titleXpath);
|
|
132
|
+
}
|
|
100
133
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
134
|
+
editorsForCheck.forEach((editor) => {
|
|
135
|
+
samplesForCheck.forEach((sampleName) => {
|
|
136
|
+
test(`Test start of ${editor.name} with sample: ${sampleName}`, async function () {
|
|
137
|
+
await testWorkspaceStartup(editor.xpath, editor.type, sampleName, false);
|
|
138
|
+
});
|
|
104
139
|
});
|
|
105
140
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
141
|
+
editorsForCheck.forEach((editor) => {
|
|
142
|
+
if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
|
|
143
|
+
Logger_1.Logger.info('Test cluster is disconnected. Using url for airgap cluster.');
|
|
144
|
+
gitRepoUrlsToCheckAirgap.forEach((url) => {
|
|
145
|
+
test(`Test start of ${editor.name} with ubi url: ${url}`, async function () {
|
|
146
|
+
await testWorkspaceStartup(editor.xpath, editor.type, url, true);
|
|
147
|
+
});
|
|
111
148
|
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
gitRepoUrlsToCheck.forEach((url) => {
|
|
152
|
+
test(`Test start of ${editor.name} with ubi url: ${url}`, async function () {
|
|
153
|
+
await testWorkspaceStartup(editor.xpath, editor.type, url, true);
|
|
154
|
+
});
|
|
118
155
|
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
121
158
|
teardown('Delete DevWorkspace', async function () {
|
|
122
159
|
Logger_1.Logger.info('Delete DevWorkspace. After each test.');
|
|
123
160
|
if (currentTabHandle !== 'undefined') {
|
|
@@ -133,4 +170,4 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
|
|
|
133
170
|
clearCurrentTabHandle();
|
|
134
171
|
});
|
|
135
172
|
});
|
|
136
|
-
//# sourceMappingURL=
|
|
173
|
+
//# sourceMappingURL=StartWorkspaceUsingDesktopEditors.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartWorkspaceUsingDesktopEditors.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.ts"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -57,6 +57,7 @@ export * from './tests-library/WorkspaceHandlingTests';
|
|
|
57
57
|
export * from './constants/API_TEST_CONSTANTS';
|
|
58
58
|
export * from './constants/BASE_TEST_CONSTANTS';
|
|
59
59
|
export * from './constants/CHROME_DRIVER_CONSTANTS';
|
|
60
|
+
export * from './constants/EDITOR_CONSTANTS';
|
|
60
61
|
export * from './constants/FACTORY_TEST_CONSTANTS';
|
|
61
62
|
export * from './constants/MOCHA_CONSTANTS';
|
|
62
63
|
export * from './constants/MONACO_CONSTANTS';
|
package/package.json
CHANGED
|
@@ -14,25 +14,46 @@ import { LoginTests } from '../../tests-library/LoginTests';
|
|
|
14
14
|
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
15
15
|
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
16
16
|
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
17
|
-
import { expect } from 'chai';
|
|
17
|
+
import { assert, expect } from 'chai';
|
|
18
18
|
import { Logger } from '../../utils/Logger';
|
|
19
19
|
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
20
20
|
import { DriverHelper } from '../../utils/DriverHelper';
|
|
21
|
+
import { EditorConfig, ALL_EDITORS } from '../../constants/EDITOR_CONSTANTS';
|
|
21
22
|
|
|
22
|
-
suite('Check
|
|
23
|
-
this.timeout(
|
|
23
|
+
suite('Check all editors with all samples', function (): void {
|
|
24
|
+
this.timeout(24000000);
|
|
24
25
|
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
25
26
|
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
26
27
|
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
27
28
|
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
28
29
|
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
29
30
|
|
|
30
|
-
const vsCodeDesktopSshEditor: string = '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]';
|
|
31
31
|
const useExtensionSwitcher: string = '//label[@class="switch"]';
|
|
32
|
-
const
|
|
32
|
+
const intellijTitleXpath: string = '/html/body/h1';
|
|
33
|
+
const vsCodeTitleXpath: string = '//div[@class="header-title"]';
|
|
33
34
|
|
|
34
35
|
let currentTabHandle: string = 'undefined';
|
|
35
|
-
const
|
|
36
|
+
const pollingForCheckTitleVSCode: number = 100;
|
|
37
|
+
const pollingForCheckTitleIntelliJ: number = 500;
|
|
38
|
+
|
|
39
|
+
// filter editors based on environment variables
|
|
40
|
+
const selectAllEditors: boolean = process.env.SELECT_ALL_EDITORS === 'true';
|
|
41
|
+
let editorsForCheck: EditorConfig[];
|
|
42
|
+
|
|
43
|
+
if (selectAllEditors) {
|
|
44
|
+
editorsForCheck = Array.from(ALL_EDITORS.values());
|
|
45
|
+
Logger.info('SELECT_ALL_EDITORS is true - running tests for all editors');
|
|
46
|
+
} else {
|
|
47
|
+
editorsForCheck = Array.from(ALL_EDITORS.values()).filter((editor): boolean => {
|
|
48
|
+
const envValue: string | undefined = process.env[editor.environmentId];
|
|
49
|
+
return envValue === 'true';
|
|
50
|
+
});
|
|
51
|
+
Logger.info(`Running tests for selected editors: ${editorsForCheck.map((e): string => e.name).join(', ')}`);
|
|
52
|
+
|
|
53
|
+
if (editorsForCheck.length === 0) {
|
|
54
|
+
assert.fail('No editors selected via environment variables');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
36
57
|
|
|
37
58
|
const samplesForCheck: string[] = [
|
|
38
59
|
'Empty Workspace',
|
|
@@ -50,12 +71,14 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
|
|
|
50
71
|
|
|
51
72
|
const gitRepoUrlsToCheck: string[] = [
|
|
52
73
|
'https://github.com/crw-qe/quarkus-api-example-public/tree/ubi8-latest',
|
|
53
|
-
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
74
|
+
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal',
|
|
75
|
+
'https://github.com/crw-qe/ubi10-based-sample-public/tree/main'
|
|
54
76
|
];
|
|
55
77
|
|
|
56
78
|
const gitRepoUrlsToCheckAirgap: string[] = [
|
|
57
79
|
'https://gh.crw-qe.com/test-automation-only/ubi8/tree/ubi8-latest',
|
|
58
|
-
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
80
|
+
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal',
|
|
81
|
+
'https://gh.crw-qe.com/test-automation-only/ubi10-based-sample-public/tree/main'
|
|
59
82
|
];
|
|
60
83
|
|
|
61
84
|
suiteSetup('Login into Che', async function (): Promise<void> {
|
|
@@ -75,58 +98,35 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
|
|
|
75
98
|
currentTabHandle = 'undefined';
|
|
76
99
|
}
|
|
77
100
|
|
|
78
|
-
async function
|
|
79
|
-
|
|
80
|
-
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
81
|
-
await dashboard.clickCreateWorkspaceButton();
|
|
82
|
-
|
|
83
|
-
if (isUrl) {
|
|
84
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(
|
|
85
|
-
vsCodeDesktopSshEditor,
|
|
86
|
-
sampleNameOrUrl,
|
|
87
|
-
titlexPath,
|
|
88
|
-
pollingForCheckTitle
|
|
89
|
-
);
|
|
90
|
-
} else {
|
|
91
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(
|
|
92
|
-
vsCodeDesktopSshEditor,
|
|
93
|
-
sampleNameOrUrl,
|
|
94
|
-
titlexPath,
|
|
95
|
-
pollingForCheckTitle
|
|
96
|
-
);
|
|
97
|
-
}
|
|
101
|
+
async function verifyVSCodeEditor(): Promise<void> {
|
|
102
|
+
Logger.debug();
|
|
98
103
|
|
|
99
|
-
// read page
|
|
100
104
|
const pageTextBeforeUseExtensionSwitcher: string = await driverHelper.getDriver().executeScript('return document.body.innerText;');
|
|
101
105
|
|
|
102
|
-
// click on "Use Extension" switcher
|
|
103
106
|
await clickOnElementByXpath(useExtensionSwitcher);
|
|
104
107
|
|
|
105
|
-
// read page
|
|
106
108
|
const pageTextAfterUseExtensionSwitcher: string = await driverHelper.getDriver().executeScript('return document.body.innerText;');
|
|
107
109
|
|
|
108
|
-
// checks for "Install extensions" state
|
|
109
110
|
expect(pageTextBeforeUseExtensionSwitcher).contains('Install the following VS Code extensions');
|
|
110
|
-
Logger.
|
|
111
|
+
Logger.debug('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
|
|
111
112
|
|
|
112
113
|
expect(pageTextBeforeUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running');
|
|
113
|
-
Logger.
|
|
114
|
+
Logger.debug(
|
|
114
115
|
'Workspace name "' + WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found before "Use Extension" clicked'
|
|
115
116
|
);
|
|
116
117
|
|
|
117
|
-
// checks for SSH state
|
|
118
118
|
expect(pageTextAfterUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running');
|
|
119
|
-
Logger.
|
|
119
|
+
Logger.debug(
|
|
120
120
|
'Workspace name "' + WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found after "Use Extension" clicked'
|
|
121
121
|
);
|
|
122
122
|
|
|
123
123
|
expect(pageTextAfterUseExtensionSwitcher).contains('oc port-forward -n admin-devspaces');
|
|
124
|
-
Logger.
|
|
124
|
+
Logger.debug('"oc port-forward -n admin-devspaces" was found');
|
|
125
125
|
|
|
126
126
|
expect(pageTextAfterUseExtensionSwitcher)
|
|
127
127
|
.contains('-----BEGIN OPENSSH PRIVATE KEY-----')
|
|
128
128
|
.and.contains('-----END OPENSSH PRIVATE KEY-----');
|
|
129
|
-
Logger.
|
|
129
|
+
Logger.debug('SSH private key (BEGIN and END markers) was found');
|
|
130
130
|
|
|
131
131
|
expect(pageTextAfterUseExtensionSwitcher)
|
|
132
132
|
.contains('HostName')
|
|
@@ -134,31 +134,77 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
|
|
|
134
134
|
.and.contains('Port')
|
|
135
135
|
.and.contains('IdentityFile')
|
|
136
136
|
.and.contains('UserKnownHostsFile');
|
|
137
|
-
Logger.
|
|
138
|
-
'SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found after "Use Extension" clicked'
|
|
139
|
-
);
|
|
137
|
+
Logger.debug('SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found');
|
|
140
138
|
}
|
|
141
139
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
async function verifyIntelliJEditor(titleXpath: string): Promise<void> {
|
|
141
|
+
Logger.debug();
|
|
142
|
+
|
|
143
|
+
const headerText: string = await workspaceHandlingTests.getTextFromUIElementByXpath(titleXpath);
|
|
144
|
+
expect('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
|
|
145
|
+
Logger.debug('Workspace title verified for IntelliJ editor: ' + headerText);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
async function testWorkspaceStartup(
|
|
149
|
+
editorXpath: string,
|
|
150
|
+
editorType: 'vscode' | 'intellij',
|
|
151
|
+
sampleNameOrUrl: string,
|
|
152
|
+
isUrl: boolean
|
|
153
|
+
): Promise<void> {
|
|
154
|
+
await dashboard.openDashboard();
|
|
155
|
+
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
156
|
+
await dashboard.clickCreateWorkspaceButton();
|
|
157
|
+
|
|
158
|
+
const pollingForCheckTitle: number = editorType === 'vscode' ? pollingForCheckTitleVSCode : pollingForCheckTitleIntelliJ;
|
|
159
|
+
const titleXpath: string = editorType === 'vscode' ? vsCodeTitleXpath : intellijTitleXpath;
|
|
160
|
+
|
|
161
|
+
if (isUrl) {
|
|
162
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(
|
|
163
|
+
editorXpath,
|
|
164
|
+
sampleNameOrUrl,
|
|
165
|
+
titleXpath,
|
|
166
|
+
pollingForCheckTitle
|
|
167
|
+
);
|
|
168
|
+
} else {
|
|
169
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(
|
|
170
|
+
editorXpath,
|
|
171
|
+
sampleNameOrUrl,
|
|
172
|
+
titleXpath,
|
|
173
|
+
pollingForCheckTitle
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (editorType === 'vscode') {
|
|
178
|
+
await verifyVSCodeEditor();
|
|
179
|
+
} else {
|
|
180
|
+
await verifyIntelliJEditor(titleXpath);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
editorsForCheck.forEach((editor): void => {
|
|
185
|
+
samplesForCheck.forEach((sampleName): void => {
|
|
186
|
+
test(`Test start of ${editor.name} with sample: ${sampleName}`, async function (): Promise<void> {
|
|
187
|
+
await testWorkspaceStartup(editor.xpath, editor.type, sampleName, false);
|
|
188
|
+
});
|
|
145
189
|
});
|
|
146
190
|
});
|
|
147
191
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
192
|
+
editorsForCheck.forEach((editor): void => {
|
|
193
|
+
if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
|
|
194
|
+
Logger.info('Test cluster is disconnected. Using url for airgap cluster.');
|
|
195
|
+
gitRepoUrlsToCheckAirgap.forEach((url): void => {
|
|
196
|
+
test(`Test start of ${editor.name} with ubi url: ${url}`, async function (): Promise<void> {
|
|
197
|
+
await testWorkspaceStartup(editor.xpath, editor.type, url, true);
|
|
198
|
+
});
|
|
153
199
|
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
200
|
+
} else {
|
|
201
|
+
gitRepoUrlsToCheck.forEach((url): void => {
|
|
202
|
+
test(`Test start of ${editor.name} with ubi url: ${url}`, async function (): Promise<void> {
|
|
203
|
+
await testWorkspaceStartup(editor.xpath, editor.type, url, true);
|
|
204
|
+
});
|
|
159
205
|
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
206
|
+
}
|
|
207
|
+
});
|
|
162
208
|
|
|
163
209
|
teardown('Delete DevWorkspace', async function (): Promise<void> {
|
|
164
210
|
Logger.info('Delete DevWorkspace. After each test.');
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/** *******************************************************************
|
|
3
|
-
* copyright (c) 2026 Red Hat, Inc.
|
|
4
|
-
*
|
|
5
|
-
* This program and the accompanying materials are made
|
|
6
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
7
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
8
|
-
*
|
|
9
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
10
|
-
**********************************************************************/
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const fs_1 = __importDefault(require("fs"));
|
|
16
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const yaml_1 = __importDefault(require("yaml"));
|
|
18
|
-
const inversify_config_1 = require("../../configs/inversify.config");
|
|
19
|
-
const inversify_types_1 = require("../../configs/inversify.types");
|
|
20
|
-
const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
|
|
21
|
-
const chai_1 = require("chai");
|
|
22
|
-
const Logger_1 = require("../../utils/Logger");
|
|
23
|
-
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
24
|
-
suite('Check Intellij IDE desktop Editor with all samples', function () {
|
|
25
|
-
this.timeout(24000000);
|
|
26
|
-
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
27
|
-
const pathToSampleFile = path_1.default.resolve('resources/default-devfile.yaml');
|
|
28
|
-
const workspaceName = yaml_1.default.parse(fs_1.default.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
|
|
29
|
-
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
30
|
-
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
31
|
-
const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
|
|
32
|
-
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
33
|
-
const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
34
|
-
const titleXpath = '/html/body/h1';
|
|
35
|
-
let currentTabHandle = 'undefined';
|
|
36
|
-
const pollingForCheckTitle = 500;
|
|
37
|
-
const editorsForCheck = [
|
|
38
|
-
'//*[@id="editor-selector-card-che-incubator/che-clion-server/latest"]',
|
|
39
|
-
'//*[@id="editor-selector-card-che-incubator/che-goland-server/latest"]',
|
|
40
|
-
'//*[@id="editor-selector-card-che-incubator/che-idea-server/latest"]',
|
|
41
|
-
'//*[@id="editor-selector-card-che-incubator/che-phpstorm-server/latest"]',
|
|
42
|
-
'//*[@id="editor-selector-card-che-incubator/che-pycharm-server/latest"]',
|
|
43
|
-
'//*[@id="editor-selector-card-che-incubator/che-rider-server/latest"]',
|
|
44
|
-
'//*[@id="editor-selector-card-che-incubator/che-rubymine-server/latest"]',
|
|
45
|
-
'//*[@id="editor-selector-card-che-incubator/che-webstorm-server/latest"]',
|
|
46
|
-
'//*[@id="editor-selector-card-che-incubator/jetbrains-sshd/latest"]'
|
|
47
|
-
];
|
|
48
|
-
const samplesForCheck = [
|
|
49
|
-
'Empty Workspace',
|
|
50
|
-
'JBoss EAP 8.0',
|
|
51
|
-
'Java Lombok',
|
|
52
|
-
'Node.js Express',
|
|
53
|
-
'Python',
|
|
54
|
-
'Quarkus REST API',
|
|
55
|
-
'.NET',
|
|
56
|
-
'Ansible',
|
|
57
|
-
'C/C++',
|
|
58
|
-
'Go',
|
|
59
|
-
'PHP'
|
|
60
|
-
];
|
|
61
|
-
const gitRepoUrlsToCheck = [
|
|
62
|
-
'https://github.com/crw-qe/quarkus-api-example-public/tree/ubi8-latest',
|
|
63
|
-
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
64
|
-
];
|
|
65
|
-
const gitRepoUrlsToCheckAirgap = [
|
|
66
|
-
'https://gh.crw-qe.com/test-automation-only/ubi8/tree/ubi8-latest',
|
|
67
|
-
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
68
|
-
];
|
|
69
|
-
function clearCurrentTabHandle() {
|
|
70
|
-
currentTabHandle = 'undefined';
|
|
71
|
-
}
|
|
72
|
-
suiteSetup('Login into Che', async function () {
|
|
73
|
-
await loginTests.loginIntoChe();
|
|
74
|
-
});
|
|
75
|
-
async function testWorkspaceStartup(editorXpath, sampleNameOrUrl, isUrl) {
|
|
76
|
-
await dashboard.openDashboard();
|
|
77
|
-
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
78
|
-
await dashboard.clickCreateWorkspaceButton();
|
|
79
|
-
if (isUrl) {
|
|
80
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editorXpath, sampleNameOrUrl, titleXpath, pollingForCheckTitle);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(editorXpath, sampleNameOrUrl, titleXpath, pollingForCheckTitle);
|
|
84
|
-
}
|
|
85
|
-
// check title
|
|
86
|
-
const headerText = await workspaceHandlingTests.getTextFromUIElementByXpath(titleXpath);
|
|
87
|
-
(0, chai_1.expect)('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
|
|
88
|
-
}
|
|
89
|
-
editorsForCheck.forEach((editorXpath) => {
|
|
90
|
-
samplesForCheck.forEach((sampleName) => {
|
|
91
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with sample name: ${sampleName}`, async function () {
|
|
92
|
-
await testWorkspaceStartup(editorXpath, sampleName, false);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
editorsForCheck.forEach((editorXpath) => {
|
|
97
|
-
if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
|
|
98
|
-
gitRepoUrlsToCheckAirgap.forEach((gitUbiUrl) => {
|
|
99
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with ubi url: ${gitUbiUrl}`, async function () {
|
|
100
|
-
await testWorkspaceStartup(editorXpath, gitUbiUrl, true);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
gitRepoUrlsToCheck.forEach((gitUbiUrl) => {
|
|
106
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with ubi url: ${gitUbiUrl}`, async function () {
|
|
107
|
-
await testWorkspaceStartup(editorXpath, gitUbiUrl, true);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
teardown('Delete DevWorkspace', async function () {
|
|
113
|
-
Logger_1.Logger.info('Delete DevWorkspace. After each test.');
|
|
114
|
-
if (currentTabHandle !== 'undefined') {
|
|
115
|
-
await browserTabsUtil.switchToWindow(currentTabHandle);
|
|
116
|
-
}
|
|
117
|
-
await dashboard.openDashboard();
|
|
118
|
-
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
119
|
-
if (WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
|
|
120
|
-
Logger_1.Logger.info('Workspace name is defined. Deleting workspace...');
|
|
121
|
-
await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
|
|
122
|
-
}
|
|
123
|
-
WorkspaceHandlingTests_1.WorkspaceHandlingTests.clearWorkspaceName();
|
|
124
|
-
clearCurrentTabHandle();
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
//# sourceMappingURL=StartWorkspaceUsingIntellijIdeaEditor.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StartWorkspaceUsingIntellijIdeaEditor.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/StartWorkspaceUsingVSCodeDesktopSshEditor.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAExE,qEAA8D;AAC9D,mEAAwD;AAIxD,uFAAoF;AACpF,+BAA8B;AAC9B,+CAA4C;AAC5C,6EAA0E;AAG1E,KAAK,CAAC,2DAA2D,EAAE;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IACxG,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAc,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,eAAe,GAAoB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,YAAY,GAAiB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAC;IAE1E,MAAM,sBAAsB,GAAW,oEAAoE,CAAC;IAC5G,MAAM,oBAAoB,GAAW,0BAA0B,CAAC;IAChE,MAAM,UAAU,GAAW,8BAA8B,CAAC;IAE1D,IAAI,gBAAgB,GAAW,WAAW,CAAC;IAC3C,MAAM,oBAAoB,GAAW,GAAG,CAAC;IAEzC,MAAM,eAAe,GAAa;QACjC,iBAAiB;QACjB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,QAAQ;QACR,kBAAkB;QAClB,MAAM;QACN,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;KACL,CAAC;IAEF,MAAM,kBAAkB,GAAa;QACpC,uEAAuE;QACvE,sEAAsE;KACtE,CAAC;IAEF,MAAM,wBAAwB,GAAa;QAC1C,kEAAkE;QAClE,uFAAuF;KACvF,CAAC;IAEF,UAAU,CAAC,gBAAgB,EAAE,KAAK;QACjC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,qBAAqB,CAAC,KAAa;QACjD,eAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,YAAY;aAChB,SAAS,EAAE;aACX,aAAa,CACb,sBAAsB,KAAK,wFAAwF,CACnH,CAAC;IACJ,CAAC;IAED,SAAS,qBAAqB;QAC7B,gBAAgB,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,eAAuB,EAAE,KAAc;QAC1E,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,gBAAgB,GAAG,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;QAClE,MAAM,SAAS,CAAC,0BAA0B,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE;YACV,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,oBAAoB,CACpB,CAAC;SACF;aAAM;YACN,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,oBAAoB,CACpB,CAAC;SACF;QAED,YAAY;QACZ,MAAM,kCAAkC,GAAW,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAEnI,oCAAoC;QACpC,MAAM,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAElD,YAAY;QACZ,MAAM,iCAAiC,GAAW,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAElI,wCAAwC;QACxC,IAAA,aAAM,EAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAChG,eAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAE3G,IAAA,aAAM,EAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC;QAC9H,eAAM,CAAC,IAAI,CACV,kBAAkB,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,uDAAuD,CACxH,CAAC;QAEF,uBAAuB;QACvB,IAAA,aAAM,EAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC;QAC7H,eAAM,CAAC,IAAI,CACV,kBAAkB,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,sDAAsD,CACvH,CAAC;QAEF,IAAA,aAAM,EAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QACzF,eAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAE5F,IAAA,aAAM,EAAC,iCAAiC,CAAC;aACvC,QAAQ,CAAC,qCAAqC,CAAC;aAC/C,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QACpD,eAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAE/F,IAAA,aAAM,EAAC,iCAAiC,CAAC;aACvC,QAAQ,CAAC,UAAU,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;aAC5B,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACrC,eAAM,CAAC,IAAI,CACV,yHAAyH,CACzH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAQ,EAAE;QAC5C,IAAI,CAAC,2DAA2D,EAAE,KAAK;YACtE,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,yCAAmB,CAAC,uBAAuB,EAAE,EAAE;QAClD,eAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC3E,wBAAwB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YAC9C,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;SAAM;QACN,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YACxC,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;IAED,QAAQ,CAAC,qBAAqB,EAAE,KAAK;QACpC,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,IAAI,gBAAgB,KAAK,WAAW,EAAE;YACrC,MAAM,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;SACvD;QAED,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,eAAe,CAAC,yBAAyB,EAAE,CAAC;QAElD,IAAI,+CAAsB,CAAC,gBAAgB,EAAE,KAAK,WAAW,EAAE;YAC9D,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,SAAS,CAAC,0BAA0B,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACtF;QAED,+CAAsB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,qBAAqB,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/** *******************************************************************
|
|
2
|
-
* copyright (c) 2026 Red Hat, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
**********************************************************************/
|
|
10
|
-
|
|
11
|
-
import { KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
|
|
12
|
-
import fs from 'fs';
|
|
13
|
-
import path from 'path';
|
|
14
|
-
import YAML from 'yaml';
|
|
15
|
-
import { e2eContainer } from '../../configs/inversify.config';
|
|
16
|
-
import { CLASSES } from '../../configs/inversify.types';
|
|
17
|
-
import { LoginTests } from '../../tests-library/LoginTests';
|
|
18
|
-
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
19
|
-
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
20
|
-
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
21
|
-
import { expect } from 'chai';
|
|
22
|
-
import { Logger } from '../../utils/Logger';
|
|
23
|
-
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
24
|
-
|
|
25
|
-
suite('Check Intellij IDE desktop Editor with all samples', function (): void {
|
|
26
|
-
this.timeout(24000000);
|
|
27
|
-
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
28
|
-
const pathToSampleFile: string = path.resolve('resources/default-devfile.yaml');
|
|
29
|
-
const workspaceName: string = YAML.parse(fs.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
|
|
30
|
-
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
31
|
-
CLASSES.KubernetesCommandLineToolsExecutor
|
|
32
|
-
);
|
|
33
|
-
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
34
|
-
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
35
|
-
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
36
|
-
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
37
|
-
|
|
38
|
-
const titleXpath: string = '/html/body/h1';
|
|
39
|
-
let currentTabHandle: string = 'undefined';
|
|
40
|
-
|
|
41
|
-
const pollingForCheckTitle: number = 500;
|
|
42
|
-
|
|
43
|
-
const editorsForCheck: string[] = [
|
|
44
|
-
'//*[@id="editor-selector-card-che-incubator/che-clion-server/latest"]',
|
|
45
|
-
'//*[@id="editor-selector-card-che-incubator/che-goland-server/latest"]',
|
|
46
|
-
'//*[@id="editor-selector-card-che-incubator/che-idea-server/latest"]',
|
|
47
|
-
'//*[@id="editor-selector-card-che-incubator/che-phpstorm-server/latest"]',
|
|
48
|
-
'//*[@id="editor-selector-card-che-incubator/che-pycharm-server/latest"]',
|
|
49
|
-
'//*[@id="editor-selector-card-che-incubator/che-rider-server/latest"]',
|
|
50
|
-
'//*[@id="editor-selector-card-che-incubator/che-rubymine-server/latest"]',
|
|
51
|
-
'//*[@id="editor-selector-card-che-incubator/che-webstorm-server/latest"]',
|
|
52
|
-
'//*[@id="editor-selector-card-che-incubator/jetbrains-sshd/latest"]'
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
const samplesForCheck: string[] = [
|
|
56
|
-
'Empty Workspace',
|
|
57
|
-
'JBoss EAP 8.0',
|
|
58
|
-
'Java Lombok',
|
|
59
|
-
'Node.js Express',
|
|
60
|
-
'Python',
|
|
61
|
-
'Quarkus REST API',
|
|
62
|
-
'.NET',
|
|
63
|
-
'Ansible',
|
|
64
|
-
'C/C++',
|
|
65
|
-
'Go',
|
|
66
|
-
'PHP'
|
|
67
|
-
];
|
|
68
|
-
|
|
69
|
-
const gitRepoUrlsToCheck: string[] = [
|
|
70
|
-
'https://github.com/crw-qe/quarkus-api-example-public/tree/ubi8-latest',
|
|
71
|
-
'https://github.com/crw-qe/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
72
|
-
];
|
|
73
|
-
|
|
74
|
-
const gitRepoUrlsToCheckAirgap: string[] = [
|
|
75
|
-
'https://gh.crw-qe.com/test-automation-only/ubi8/tree/ubi8-latest',
|
|
76
|
-
'https://gh.crw-qe.com/test-automation-only/ubi9-based-sample-public/tree/ubi9-minimal'
|
|
77
|
-
];
|
|
78
|
-
|
|
79
|
-
function clearCurrentTabHandle(): void {
|
|
80
|
-
currentTabHandle = 'undefined';
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
suiteSetup('Login into Che', async function (): Promise<void> {
|
|
84
|
-
await loginTests.loginIntoChe();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
async function testWorkspaceStartup(editorXpath: string, sampleNameOrUrl: string, isUrl: boolean): Promise<void> {
|
|
88
|
-
await dashboard.openDashboard();
|
|
89
|
-
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
90
|
-
await dashboard.clickCreateWorkspaceButton();
|
|
91
|
-
|
|
92
|
-
if (isUrl) {
|
|
93
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(
|
|
94
|
-
editorXpath,
|
|
95
|
-
sampleNameOrUrl,
|
|
96
|
-
titleXpath,
|
|
97
|
-
pollingForCheckTitle
|
|
98
|
-
);
|
|
99
|
-
} else {
|
|
100
|
-
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(
|
|
101
|
-
editorXpath,
|
|
102
|
-
sampleNameOrUrl,
|
|
103
|
-
titleXpath,
|
|
104
|
-
pollingForCheckTitle
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// check title
|
|
109
|
-
const headerText: string = await workspaceHandlingTests.getTextFromUIElementByXpath(titleXpath);
|
|
110
|
-
expect('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
editorsForCheck.forEach((editorXpath): void => {
|
|
114
|
-
samplesForCheck.forEach((sampleName): void => {
|
|
115
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with sample name: ${sampleName}`, async function (): Promise<void> {
|
|
116
|
-
await testWorkspaceStartup(editorXpath, sampleName, false);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
editorsForCheck.forEach((editorXpath): void => {
|
|
122
|
-
if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
|
|
123
|
-
gitRepoUrlsToCheckAirgap.forEach((gitUbiUrl): void => {
|
|
124
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with ubi url: ${gitUbiUrl}`, async function (): Promise<void> {
|
|
125
|
-
await testWorkspaceStartup(editorXpath, gitUbiUrl, true);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
} else {
|
|
129
|
-
gitRepoUrlsToCheck.forEach((gitUbiUrl): void => {
|
|
130
|
-
test(`Test start of Editor with xPath: ${editorXpath} and with ubi url: ${gitUbiUrl}`, async function (): Promise<void> {
|
|
131
|
-
await testWorkspaceStartup(editorXpath, gitUbiUrl, true);
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
teardown('Delete DevWorkspace', async function (): Promise<void> {
|
|
138
|
-
Logger.info('Delete DevWorkspace. After each test.');
|
|
139
|
-
if (currentTabHandle !== 'undefined') {
|
|
140
|
-
await browserTabsUtil.switchToWindow(currentTabHandle);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
await dashboard.openDashboard();
|
|
144
|
-
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
145
|
-
|
|
146
|
-
if (WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
|
|
147
|
-
Logger.info('Workspace name is defined. Deleting workspace...');
|
|
148
|
-
await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName());
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
WorkspaceHandlingTests.clearWorkspaceName();
|
|
152
|
-
clearCurrentTabHandle();
|
|
153
|
-
});
|
|
154
|
-
});
|