@eclipse-che/che-e2e 7.120.0-next-176265c → 7.120.0-next-2d52216

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.
Files changed (29) hide show
  1. package/.claude/settings.local.json +5 -2
  2. package/.claude/skills/explore-and-generate-tests/SKILL.md +361 -0
  3. package/.mcp.json +10 -0
  4. package/configs/inversify.config.ts +2 -0
  5. package/configs/inversify.types.ts +2 -1
  6. package/constants/EDITOR_CONSTANTS.ts +120 -0
  7. package/dist/configs/inversify.config.js +2 -0
  8. package/dist/configs/inversify.config.js.map +1 -1
  9. package/dist/configs/inversify.types.js +2 -1
  10. package/dist/configs/inversify.types.js.map +1 -1
  11. package/dist/constants/EDITOR_CONSTANTS.js +114 -0
  12. package/dist/constants/EDITOR_CONSTANTS.js.map +1 -0
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/pageobjects/ide/AiCodeSignInDialog.js +55 -0
  16. package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +1 -0
  17. package/dist/specs/dashboard-samples/{StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js → StartWorkspaceUsingDesktopEditors.spec.js} +82 -45
  18. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +1 -0
  19. package/dist/tests-library/ProjectAndFileTests.js +21 -2
  20. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  21. package/index.ts +2 -0
  22. package/package.json +1 -1
  23. package/pageobjects/ide/AiCodeSignInDialog.ts +40 -0
  24. package/specs/dashboard-samples/{StartWorkspaceUsingVSCodeDesktopSshEditor.spec.ts → StartWorkspaceUsingDesktopEditors.spec.ts} +102 -56
  25. package/tests-library/ProjectAndFileTests.ts +20 -1
  26. package/dist/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.js +0 -127
  27. package/dist/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.js.map +0 -1
  28. package/dist/specs/dashboard-samples/StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js.map +0 -1
  29. package/specs/dashboard-samples/StartWorkspaceUsingIntellijIdeaEditor.spec.ts +0 -154
@@ -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.');
@@ -18,6 +18,7 @@ import { CheCodeLocatorLoader } from '../pageobjects/ide/CheCodeLocatorLoader';
18
18
  import { By, EditorView, SideBarView, ViewContent, ViewItem, ViewSection, Workbench } from 'monaco-page-objects';
19
19
  import { WorkspaceHandlingTests } from '../tests-library/WorkspaceHandlingTests';
20
20
  import { RestrictedModeButton } from '../pageobjects/ide/RestrictedModeButton';
21
+ import { AiCodeSignInDialog } from '../pageobjects/ide/AiCodeSignInDialog';
21
22
 
22
23
  @injectable()
23
24
  export class ProjectAndFileTests {
@@ -32,7 +33,9 @@ export class ProjectAndFileTests {
32
33
  @inject(CLASSES.WorkspaceHandlingTests)
33
34
  private readonly workspaceHandlingTests: WorkspaceHandlingTests,
34
35
  @inject(CLASSES.RestrictedModeButton)
35
- private readonly restrictedModeButton: RestrictedModeButton
36
+ private readonly restrictedModeButton: RestrictedModeButton,
37
+ @inject(CLASSES.AiCodeSignInDialog)
38
+ private readonly aiCodeSignInDialog: AiCodeSignInDialog
36
39
  ) {}
37
40
 
38
41
  async waitWorkspaceReadinessForCheCodeEditor(): Promise<void> {
@@ -45,6 +48,7 @@ export class ProjectAndFileTests {
45
48
  );
46
49
  const end: number = new Date().getTime();
47
50
  Logger.debug(`editor was opened in ${end - start} seconds.`);
51
+ await this.dismissAiCodeSignInDialog();
48
52
  } catch (err) {
49
53
  Logger.error(`waiting for workspace readiness failed: ${err}`);
50
54
 
@@ -116,6 +120,21 @@ export class ProjectAndFileTests {
116
120
  }
117
121
  }
118
122
 
123
+ /**
124
+ * dismiss 'Sign in to continue with AI-powered development' dialog, when it appears
125
+ */
126
+ async dismissAiCodeSignInDialog(): Promise<void> {
127
+ Logger.debug();
128
+
129
+ try {
130
+ if (await this.aiCodeSignInDialog.isDialogVisible()) {
131
+ await this.aiCodeSignInDialog.closeDialog();
132
+ }
133
+ } catch (e) {
134
+ Logger.info('"Sign in to continue with AI-powered development" dialog was not shown');
135
+ }
136
+ }
137
+
119
138
  /**
120
139
  * perform to 'Trust' dialog boxes, when they appear
121
140
  */
@@ -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
- });