@eclipse-che/che-e2e 7.119.0 → 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.
@@ -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
- suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
19
- this.timeout(6000000);
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 titlexPath = '//div[@class="header-title"]';
27
+ const intellijTitleXpath = '/html/body/h1';
28
+ const vsCodeTitleXpath = '//div[@class="header-title"]';
28
29
  let currentTabHandle = 'undefined';
29
- const pollingForCheckTitle = 100;
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 testWorkspaceStartup(sampleNameOrUrl, isUrl) {
64
- await dashboard.openDashboard();
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.info('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
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.info('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found before "Use Extension" clicked');
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.info('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found after "Use Extension" clicked');
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.info('"oc port-forward -n admin-devspaces" was found after "Use Extension" clicked');
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.info('SSH private key (BEGIN and END markers) was found after "Use Extension" clicked');
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.info('SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found after "Use Extension" clicked');
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
- samplesForCheck.forEach((sampleName) => {
102
- test('Test start of VSCode (desktop) (SSH) with default Samples', async function () {
103
- await testWorkspaceStartup(sampleName, false);
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
- if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
107
- Logger_1.Logger.info('Test cluster is disconnected. Using url for airgap cluster.');
108
- gitRepoUrlsToCheckAirgap.forEach((url) => {
109
- test('Test start of VSCode (desktop) (SSH) with ubi', async function () {
110
- await testWorkspaceStartup(url, true);
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
- else {
115
- gitRepoUrlsToCheck.forEach((url) => {
116
- test('Test start of VSCode (desktop) (SSH) with ubi', async function () {
117
- await testWorkspaceStartup(url, true);
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=StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js.map
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.119.0",
3
+ "version": "7.120.0-next-8f85f13",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -66,8 +66,7 @@
66
66
  "dependencies": {
67
67
  "@eclipse-che/api": "latest",
68
68
  "inversify": "6.0.1",
69
- "reflect-metadata": "0.1.13",
70
- "@eclipse-che/che-devworkspace-generator": "7.119.0"
69
+ "reflect-metadata": "0.1.13"
71
70
  },
72
71
  "resolutions": {
73
72
  "minimist": "^1.2.5"
@@ -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 Visual Studio Code (desktop) (SSH) with all samples', function (): void {
23
- this.timeout(6000000);
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 titlexPath: string = '//div[@class="header-title"]';
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 pollingForCheckTitle: number = 100;
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 testWorkspaceStartup(sampleNameOrUrl: string, isUrl: boolean): Promise<void> {
79
- await dashboard.openDashboard();
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.info('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
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.info(
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.info(
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.info('"oc port-forward -n admin-devspaces" was found after "Use Extension" clicked');
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.info('SSH private key (BEGIN and END markers) was found after "Use Extension" clicked');
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.info(
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
- samplesForCheck.forEach((sampleName): void => {
143
- test('Test start of VSCode (desktop) (SSH) with default Samples', async function (): Promise<void> {
144
- await testWorkspaceStartup(sampleName, false);
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
- if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
149
- Logger.info('Test cluster is disconnected. Using url for airgap cluster.');
150
- gitRepoUrlsToCheckAirgap.forEach((url): void => {
151
- test('Test start of VSCode (desktop) (SSH) with ubi', async function (): Promise<void> {
152
- await testWorkspaceStartup(url, true);
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
- } else {
156
- gitRepoUrlsToCheck.forEach((url): void => {
157
- test('Test start of VSCode (desktop) (SSH) with ubi', async function (): Promise<void> {
158
- await testWorkspaceStartup(url, true);
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":"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"}
@@ -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
- });