@eclipse-che/che-e2e 7.121.0-next-38dc0b7 → 7.121.0-next-bfb657a

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 (28) hide show
  1. package/constants/TIMEOUT_CONSTANTS.ts +8 -2
  2. package/dist/constants/TIMEOUT_CONSTANTS.js +6 -2
  3. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -1
  4. package/dist/pageobjects/dashboard/Workspaces.js +53 -0
  5. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  6. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +1 -0
  7. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -1
  8. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +1 -0
  9. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +1 -1
  10. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +1 -0
  11. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -1
  12. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +208 -0
  13. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +1 -0
  14. package/dist/tests-library/ProjectAndFileTests.js +9 -0
  15. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  16. package/dist/utils/KubernetesCommandLineToolsExecutor.js +40 -4
  17. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  18. package/dist/utils/workspace/ApiUrlResolver.js +55 -2
  19. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  20. package/package.json +1 -1
  21. package/pageobjects/dashboard/Workspaces.ts +79 -0
  22. package/specs/api/BuildPushRunPodmanContainerAPI.spec.ts +1 -0
  23. package/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.ts +1 -0
  24. package/specs/miscellaneous/KubedockPodmanTest.spec.ts +1 -0
  25. package/specs/miscellaneous/WorkspaceBackupRestore.spec.ts +224 -0
  26. package/tests-library/ProjectAndFileTests.ts +10 -0
  27. package/utils/KubernetesCommandLineToolsExecutor.ts +51 -4
  28. package/utils/workspace/ApiUrlResolver.ts +63 -2
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ var ApiUrlResolver_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.ApiUrlResolver = void 0;
17
17
  /** *******************************************************************
18
- * copyright (c) 2019-2023 Red Hat, Inc.
18
+ * copyright (c) 2019-2026 Red Hat, Inc.
19
19
  *
20
20
  * This program and the accompanying materials are made
21
21
  * available under the terms of the Eclipse Public License 2.0
@@ -33,12 +33,65 @@ let ApiUrlResolver = ApiUrlResolver_1 = class ApiUrlResolver {
33
33
  this.userNamespace = '';
34
34
  }
35
35
  async getWorkspaceApiUrl(workspaceName) {
36
- return `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
36
+ const actualWorkspaceName = await this.resolveWorkspaceName(workspaceName);
37
+ return `${await this.getWorkspacesApiUrl()}/${actualWorkspaceName}`;
37
38
  }
38
39
  async getWorkspacesApiUrl() {
39
40
  const namespace = await this.obtainUserNamespace();
40
41
  return `${ApiUrlResolver_1.DASHBOARD_API_URL}/${namespace}/devworkspaces`;
41
42
  }
43
+ /**
44
+ * resolves the actual DevWorkspace name from the API.
45
+ * If the exact workspace name exists, returns it as is.
46
+ * If not found, searches for a workspace whose name matches the pattern: workspaceName + '-' + random suffix
47
+ * (to handle cases where DevWorkspace has a random suffix like '-4fnq' after backup/restore).
48
+ * @param workspaceName - The workspace name to search for
49
+ * @returns The actual DevWorkspace name from the API
50
+ * @throws Error if no matching workspace is found
51
+ */
52
+ async resolveWorkspaceName(workspaceName) {
53
+ Logger_1.Logger.debug(`Resolving workspace name: ${workspaceName}`);
54
+ try {
55
+ // first, try to get the workspace directly by the provided name
56
+ const directUrl = `${await this.getWorkspacesApiUrl()}/${workspaceName}`;
57
+ const directResponse = await this.processRequestHandler.get(directUrl);
58
+ if (directResponse.status === 200) {
59
+ Logger_1.Logger.debug(`Found exact match: ${workspaceName}`);
60
+ return workspaceName;
61
+ }
62
+ }
63
+ catch (error) {
64
+ // workspace not found by exact name, will search by prefix with suffix pattern
65
+ Logger_1.Logger.debug(`Exact match not found for ${workspaceName}, searching by prefix with suffix`);
66
+ }
67
+ // if exact match not found, get all workspaces and search by prefix + dash + suffix pattern
68
+ const allWorkspacesResponse = await this.processRequestHandler.get(await this.getWorkspacesApiUrl());
69
+ if (allWorkspacesResponse.status !== 200) {
70
+ throw new Error(`Cannot get workspaces list. Code: ${allWorkspacesResponse.status} Data: ${allWorkspacesResponse.data}`);
71
+ }
72
+ const workspaces = allWorkspacesResponse.data.items || [];
73
+ // look for workspace with pattern: workspaceName + '-' + suffix (e.g., 'test-workspace-2-4fnq')
74
+ // this ensures we don't match 'test-workspace-20' when looking for 'test-workspace-2'
75
+ const matchingWorkspaces = workspaces.filter((ws) => {
76
+ const dwName = ws.metadata.name;
77
+ // check if name starts with workspaceName followed by a dash
78
+ if (dwName.startsWith(workspaceName + '-')) {
79
+ // verify that what follows the dash looks like a random suffix (lowercase letters/numbers)
80
+ const suffix = dwName.substring(workspaceName.length + 1);
81
+ return suffix.length > 0 && /^[a-z0-9]+$/.test(suffix);
82
+ }
83
+ return false;
84
+ });
85
+ if (matchingWorkspaces.length === 1) {
86
+ Logger_1.Logger.debug(`Found workspace by prefix: ${matchingWorkspaces[0].metadata.name} (requested: ${workspaceName})`);
87
+ return matchingWorkspaces[0].metadata.name;
88
+ }
89
+ if (matchingWorkspaces.length > 1) {
90
+ const names = matchingWorkspaces.map((ws) => ws.metadata.name).join(', ');
91
+ throw new Error(`Multiple workspaces found matching '${workspaceName}': ${names}. Please use exact DevWorkspace name or delete duplicates.`);
92
+ }
93
+ throw new Error(`Workspace not found: ${workspaceName} (tried exact match and prefix search)`);
94
+ }
42
95
  async obtainUserNamespace() {
43
96
  Logger_1.Logger.debug(`${this.userNamespace}`);
44
97
  if (this.userNamespace.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,yCAA+C;AAC/C,mEAAwD;AACxD,sCAAmC;AACnC,mFAAgF;AAIzE,IAAM,cAAc,sBAApB,MAAM,cAAc;IAM1B,YAEkB,qBAA2C;QAA3C,0BAAqB,GAArB,qBAAqB,CAAsB;QAJrD,kBAAa,GAAW,EAAE,CAAC;IAKhC,CAAC;IAEJ,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC7C,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,aAAa,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACxB,MAAM,SAAS,GAAW,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3D,OAAO,GAAG,gBAAc,CAAC,iBAAiB,IAAI,SAAS,gBAAgB,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAChC,eAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,eAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAkB,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAc,CAAC,kBAAkB,CAAC,CAAC;YAClH,IAAI,kBAAkB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtC,MAAM,IAAI,KAAK,CACd,wDAAwD,kBAAkB,CAAC,MAAM,UAAU,kBAAkB,CAAC,IAAI,EAAE,CACpH,CAAC;aACF;YACD,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;;AAjCuB,gCAAiB,GAAW,yBAAyB,CAAC;AACtD,iCAAkB,GAAW,0BAA0B,CAAC;AAFpE,cAAc;IAD1B,IAAA,sBAAU,GAAE;IAQV,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,oBAAoB,CAAC,CAAA;qCACG,2CAAoB;GARjD,cAAc,CAmC1B;AAnCY,wCAAc"}
1
+ {"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.121.0-next-38dc0b7",
3
+ "version": "7.121.0-next-bfb657a",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -32,6 +32,15 @@ export class Workspaces {
32
32
  private static readonly CONFIRMATION_WINDOW: By = By.xpath('//div[@aria-label="Delete workspaces confirmation window"]');
33
33
  private static readonly LEARN_MORE_DOC_LINK: By = By.xpath('//div/p/a');
34
34
 
35
+ private static readonly BACKUPS_BUTTON: By = By.id('view-backups');
36
+ private static readonly BACKUP_IMAGE: By = By.css('input[aria-label="Copyable input"]');
37
+ private static readonly CREATE_FROM_BACKUP_BUTTON: By = By.xpath('//span[text()="Create from Backup"]');
38
+ private static readonly RESTORE_WORKSPACE_BUTTON: By = By.xpath('//span[text()="Restore Workspace"]');
39
+ private static readonly RESTORE_CONFIRM_BUTTON: By = By.xpath('//span[text()="Restore"]');
40
+ private static readonly EXTERNAL_REGISTRY_MODE_BUTTON: By = By.xpath('//span[text()="External registry"]');
41
+ private static readonly BACKUP_IMAGE_URL_INPUT: By = By.css('input[aria-label="Backup image URL"]');
42
+ private static readonly WORKSPACE_NAME_INPUT: By = By.css('input[aria-label="Workspace name"]');
43
+
35
44
  constructor(
36
45
  @inject(CLASSES.DriverHelper)
37
46
  private readonly driverHelper: DriverHelper
@@ -214,6 +223,68 @@ export class Workspaces {
214
223
  return await this.driverHelper.waitAndGetElementAttribute(Workspaces.LEARN_MORE_DOC_LINK, 'href');
215
224
  }
216
225
 
226
+ async waitBackupStatus(
227
+ workspaceName: string,
228
+ status: string,
229
+ timeout: number = TIMEOUT_CONSTANTS.TS_WAIT_BACKUP_STATUS_TIMEOUT
230
+ ): Promise<void> {
231
+ Logger.debug(`Backup status for the "${workspaceName}" list item`);
232
+
233
+ await this.driverHelper.waitVisibility(this.getBackupStatusLocator(workspaceName, status), timeout);
234
+ }
235
+
236
+ async openBackupsPage(timeout: number = TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
237
+ Logger.debug();
238
+
239
+ await this.driverHelper.waitAndClick(Workspaces.BACKUPS_BUTTON, timeout);
240
+ }
241
+
242
+ async clickCreateFromBackupButton(
243
+ workspaceName: string,
244
+ timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT
245
+ ): Promise<void> {
246
+ Logger.debug(`"${workspaceName}"`);
247
+
248
+ await this.driverHelper.waitAndClick(this.getActionsRestoreWorkspaceButtonLocator(workspaceName), timeout);
249
+ await this.driverHelper.waitAndClick(Workspaces.CREATE_FROM_BACKUP_BUTTON, timeout);
250
+ }
251
+
252
+ async restoreWorkspaceFromDefaultRegistry(): Promise<void> {
253
+ Logger.debug();
254
+
255
+ await this.driverHelper.waitAndClick(Workspaces.RESTORE_WORKSPACE_BUTTON);
256
+ await this.driverHelper.waitAndClick(Workspaces.RESTORE_CONFIRM_BUTTON);
257
+ }
258
+
259
+ async restoreWorkspaceFromExternalRegistry(backupImageUrl: string, workspaceName: string): Promise<void> {
260
+ Logger.debug();
261
+
262
+ await this.driverHelper.waitAndClick(Workspaces.EXTERNAL_REGISTRY_MODE_BUTTON);
263
+ await this.setBackupImageUrlValue(backupImageUrl);
264
+ await this.setWorkspaceNameValue(workspaceName);
265
+ await this.driverHelper.waitAndClick(Workspaces.RESTORE_WORKSPACE_BUTTON);
266
+ }
267
+
268
+ async getBackupImageUrlValue(): Promise<string> {
269
+ Logger.debug();
270
+
271
+ return await this.driverHelper.waitAndGetValue(Workspaces.BACKUP_IMAGE, TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
272
+ }
273
+
274
+ async setBackupImageUrlValue(backupImageUrl: string): Promise<void> {
275
+ Logger.debug();
276
+
277
+ await this.driverHelper.clear(Workspaces.BACKUP_IMAGE_URL_INPUT);
278
+ await this.driverHelper.type(Workspaces.BACKUP_IMAGE_URL_INPUT, backupImageUrl);
279
+ }
280
+
281
+ async setWorkspaceNameValue(workspaceName: string): Promise<void> {
282
+ Logger.debug();
283
+
284
+ await this.driverHelper.clear(Workspaces.WORKSPACE_NAME_INPUT);
285
+ await this.driverHelper.type(Workspaces.WORKSPACE_NAME_INPUT, workspaceName);
286
+ }
287
+
217
288
  private getWorkspaceListItemLocator(workspaceName: string): By {
218
289
  return By.xpath(`//tr[td//span[text()='${workspaceName}']]`);
219
290
  }
@@ -247,4 +318,12 @@ export class Workspaces {
247
318
  private getOpenWorkspaceDetailsLinkLocator(workspaceName: string): By {
248
319
  return By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//span[text()='${workspaceName}']`);
249
320
  }
321
+
322
+ private getActionsRestoreWorkspaceButtonLocator(workspaceName: string): By {
323
+ return By.xpath(`//tr[td//span[text()='${workspaceName}']]//button[@aria-label='Actions for ${workspaceName}']`);
324
+ }
325
+
326
+ private getBackupStatusLocator(workspaceName: string, status: string): By {
327
+ return By.xpath(`//tr[td//span[text()='${workspaceName}']]//span[@aria-label="Backup status: ${status}"]`);
328
+ }
250
329
  }
@@ -134,6 +134,7 @@ oc logs test-hello-pod
134
134
  await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.x86_64'),
135
135
  'Dockerfile not found in the project tree'
136
136
  ).not.undefined;
137
+ await projectAndFileTests.performTrustDialogs();
137
138
  });
138
139
 
139
140
  test('Build and push container image from workspace', function (): void {
@@ -120,6 +120,7 @@ suite(`Test image build with persistUserHome enabled (kubedock and podman) ${BAS
120
120
  test('Check the project files were imported', async function (): Promise<void> {
121
121
  const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
122
122
  expect(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.ppc64le'), 'Files not imported').not.undefined;
123
+ await projectAndFileTests.performTrustDialogs();
123
124
  });
124
125
 
125
126
  test('Create and check container runs using kubedock and podman with persistUserHome', function (): void {
@@ -107,6 +107,7 @@ suite(
107
107
  test('Check the project files were imported', async function (): Promise<void> {
108
108
  const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
109
109
  expect(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.ppc64le'), 'Files not imported').not.undefined;
110
+ await projectAndFileTests.performTrustDialogs();
110
111
  });
111
112
 
112
113
  test('Create and check container runs using kubedock and podman', function (): void {
@@ -0,0 +1,224 @@
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
+ import { e2eContainer } from '../../configs/inversify.config';
11
+ import { ViewSection } from 'monaco-page-objects';
12
+ import { CLASSES, TYPES } from '../../configs/inversify.types';
13
+ import { expect } from 'chai';
14
+ import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
15
+ import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
16
+ import { LoginTests } from '../../tests-library/LoginTests';
17
+ import { registerRunningWorkspace } from '../MochaHooks';
18
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
19
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
20
+ import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
21
+ import { Workspaces } from '../../pageobjects/dashboard/Workspaces';
22
+ import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
23
+ import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
24
+ import { Logger } from '../../utils/Logger';
25
+ import { StringUtil } from '../../utils/StringUtil';
26
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
27
+ import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
28
+ import { ShellString } from 'shelljs';
29
+ import { WorkspaceDetails } from '../../pageobjects/dashboard/workspace-details/WorkspaceDetails';
30
+
31
+ const factoryUrl: string =
32
+ FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://gh.crw-qe.com/test-automation-only/python-hello-world.git';
33
+ const testFileName: string = 'backup-test.txt';
34
+ const testFileContent: string = 'This is a test file for backup verification';
35
+
36
+ suite(`"Restore workspace from backup" test ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
37
+ const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
38
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
39
+ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
40
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
41
+ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
42
+ const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
43
+ const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
44
+ const workspaceDetails: WorkspaceDetails = e2eContainer.get(CLASSES.WorkspaceDetails);
45
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
46
+ CLASSES.KubernetesCommandLineToolsExecutor
47
+ );
48
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
49
+ const workspaceName2: string = 'test-workspace-2';
50
+
51
+ let projectSection: ViewSection;
52
+ let workspaceName: string;
53
+ let backupImageUrl: string;
54
+ let projectName: string;
55
+
56
+ async function openWorkspaceDetailsBackup(workspaceName: string): Promise<void> {
57
+ await workspaces.clickWorkspaceListItemLink(workspaceName);
58
+ await workspaceDetails.waitWorkspaceTitle(workspaceName);
59
+ await workspaceDetails.waitLoaderDisappearance();
60
+ await workspaceDetails.selectTab('Backup');
61
+ }
62
+
63
+ suiteSetup('Login', async function (): Promise<void> {
64
+ await loginTests.loginIntoChe();
65
+ });
66
+ test(`Create and open new workspace from factory:${factoryUrl}`, async function (): Promise<void> {
67
+ await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
68
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
69
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
70
+ });
71
+
72
+ test('Wait workspace readiness and project folder has been created', async function (): Promise<void> {
73
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
74
+ });
75
+ test('Check a project folder has been created', async function (): Promise<void> {
76
+ projectName = FACTORY_TEST_CONSTANTS.TS_SELENIUM_PROJECT_NAME || StringUtil.getProjectNameFromGitUrl(factoryUrl);
77
+ projectSection = await projectAndFileTests.getProjectViewSession();
78
+ expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not imported').not.undefined;
79
+ await projectAndFileTests.performTrustDialogs();
80
+ });
81
+ test('Setup workspace context for API operations', function (): void {
82
+ workspaceName = WorkspaceHandlingTests.getWorkspaceName();
83
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
84
+ kubernetesCommandLineToolsExecutor.loginToOcp();
85
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
86
+ });
87
+ test('Create test file via API', function (): void {
88
+ Logger.debug(`Creating test file: /projects/${projectName}/${testFileName}`);
89
+ const createFileCommand: string = `echo "${testFileContent}" > /projects/${projectName}/${testFileName}`;
90
+ const output: ShellString = containerTerminal.execInContainerCommand(createFileCommand);
91
+ Logger.debug(`File creation output: ${output.stdout}`);
92
+ expect(output.code).to.equal(0);
93
+ });
94
+ test('Verify test file content via API', function (): void {
95
+ Logger.debug(`Verifying test file content: /projects/${projectName}/${testFileName}`);
96
+ const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
97
+ const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
98
+ Logger.debug(`File content: ${output.stdout}`);
99
+ expect(output.stdout.trim()).to.equal(testFileContent);
100
+ });
101
+ test('Stop the workspace', async function (): Promise<void> {
102
+ expect(workspaceName, 'Workspace name not available').not.empty;
103
+ await dashboard.openDashboard();
104
+ await dashboard.waitPage();
105
+ await dashboard.stopWorkspaceByUI(workspaceName);
106
+ await browserTabsUtil.closeAllTabsExceptCurrent();
107
+ await workspaces.waitWorkspaceWithStoppedStatus(workspaceName);
108
+ await workspaces.waitBackupStatus(workspaceName, 'Never');
109
+ });
110
+ test('Wait for backup completion', async function (): Promise<void> {
111
+ await workspaces.waitWorkspaceListItem(workspaceName);
112
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
113
+ });
114
+ test('Get backup image URL', async function (): Promise<void> {
115
+ await openWorkspaceDetailsBackup(workspaceName);
116
+ backupImageUrl = await workspaces.getBackupImageUrlValue();
117
+ Logger.info(`Retrieved backup image URL: ${backupImageUrl}`);
118
+ });
119
+ test('Delete the workspace', async function (): Promise<void> {
120
+ await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
121
+ });
122
+ test('Open backups page', async function (): Promise<void> {
123
+ await workspaces.openBackupsPage();
124
+ await workspaces.waitWorkspaceListItem(workspaceName);
125
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
126
+ });
127
+ test('Restore workspace from default registry', async function (): Promise<void> {
128
+ const parentGUID: string = await browserTabsUtil.getCurrentWindowHandle();
129
+ await workspaces.clickCreateFromBackupButton(workspaceName);
130
+ await workspaces.restoreWorkspaceFromDefaultRegistry();
131
+ await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
132
+ });
133
+ test('Obtain workspace name after restore', async function (): Promise<void> {
134
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
135
+ const obtainedName: string = WorkspaceHandlingTests.getWorkspaceName();
136
+ Logger.info(`Obtained workspace name after first restore: '${obtainedName}'`);
137
+ });
138
+ test('Register restored workspace', function (): void {
139
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
140
+ });
141
+ test('Wait workspace readiness after restore', async function (): Promise<void> {
142
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
143
+ await projectAndFileTests.performTrustDialogs();
144
+ projectSection = await projectAndFileTests.getProjectViewSession();
145
+ });
146
+ test('Setup workspace context for API operations after restore', function (): void {
147
+ workspaceName = WorkspaceHandlingTests.getWorkspaceName();
148
+ Logger.info(`Workspace name for API setup after first restore: '${workspaceName}'`);
149
+ expect(workspaceName, 'Workspace name should not be empty after restore').not.empty;
150
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
151
+ kubernetesCommandLineToolsExecutor.loginToOcp();
152
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
153
+ });
154
+ test('Verify project folder exists after restore', async function (): Promise<void> {
155
+ await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
156
+ expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
157
+ });
158
+ test('Verify test file content is intact after restore via API', function (): void {
159
+ Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
160
+ const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
161
+ const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
162
+ Logger.debug(`Restored file content: ${output.stdout}`);
163
+ expect(output.stdout.trim()).to.equal(testFileContent);
164
+ });
165
+ test('Delete the workspace', async function (): Promise<void> {
166
+ await dashboard.openDashboard();
167
+ await dashboard.waitPage();
168
+ await dashboard.deleteStoppedWorkspaceByUI(workspaceName);
169
+ await browserTabsUtil.closeAllTabsExceptCurrent();
170
+ });
171
+ test('Open backups page', async function (): Promise<void> {
172
+ await workspaces.openBackupsPage();
173
+ await workspaces.waitWorkspaceListItem(workspaceName);
174
+ await workspaces.waitBackupStatus(workspaceName, 'Success');
175
+ });
176
+ test('Restore workspace from backup image URL ', async function (): Promise<void> {
177
+ const parentGUID: string = await browserTabsUtil.getCurrentWindowHandle();
178
+ await workspaces.clickCreateFromBackupButton(workspaceName);
179
+ await workspaces.restoreWorkspaceFromExternalRegistry(backupImageUrl, workspaceName2);
180
+ await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
181
+ });
182
+ test('Obtain workspace name after second restore', async function (): Promise<void> {
183
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
184
+ const obtainedName: string = WorkspaceHandlingTests.getWorkspaceName();
185
+ Logger.info(`Obtained workspace name after second restore: '${obtainedName}'`);
186
+ });
187
+ test('Register second restored workspace', function (): void {
188
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
189
+ });
190
+ test('Wait workspace readiness after second restore', async function (): Promise<void> {
191
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
192
+ await projectAndFileTests.performTrustDialogs();
193
+ projectSection = await projectAndFileTests.getProjectViewSession();
194
+ });
195
+ test('Setup workspace context for API operations after second restore', function (): void {
196
+ workspaceName = WorkspaceHandlingTests.getWorkspaceName();
197
+ Logger.info(`Workspace name for API setup after second restore: '${workspaceName}'`);
198
+ expect(workspaceName, 'Workspace name should not be empty after second restore').not.empty;
199
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
200
+ kubernetesCommandLineToolsExecutor.loginToOcp();
201
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
202
+ });
203
+ test('Verify project folder exists after second restore', async function (): Promise<void> {
204
+ await projectAndFileTests.expandProjectTreeItem(projectSection, projectName);
205
+ expect(await projectAndFileTests.getProjectTreeItem(projectSection, projectName), 'Project folder was not restored').not.undefined;
206
+ });
207
+ test('Verify test file content is intact after second restore via API', function (): void {
208
+ Logger.debug(`Verifying restored file content: /projects/${projectName}/${testFileName}`);
209
+ const readFileCommand: string = `cat /projects/${projectName}/${testFileName}`;
210
+ const output: ShellString = containerTerminal.execInContainerCommand(readFileCommand);
211
+ Logger.debug(`Restored file content: ${output.stdout}`);
212
+ expect(output.stdout.trim()).to.equal(testFileContent);
213
+ });
214
+ suiteTeardown('Open dashboard and close all other tabs', async function (): Promise<void> {
215
+ await dashboard.openDashboard();
216
+ await browserTabsUtil.closeAllTabsExceptCurrent();
217
+ });
218
+ suiteTeardown('Stop and delete workspace by API', async function (): Promise<void> {
219
+ await testWorkspaceUtil.stopAndDeleteWorkspaceByName(workspaceName);
220
+ });
221
+ suiteTeardown('Unregister running workspace', function (): void {
222
+ registerRunningWorkspace('');
223
+ });
224
+ });
@@ -243,4 +243,14 @@ export class ProjectAndFileTests {
243
243
 
244
244
  throw new Error(`File "${fileName}" was not opened in the editor after ${maxAttempts} attempts`);
245
245
  }
246
+
247
+ async expandProjectTreeItem(projectSection: ViewSection, projectName: string): Promise<void> {
248
+ Logger.debug(`${projectName}`);
249
+ const projectTreeItem: ViewItem | undefined = await projectSection.findItem(projectName, 2);
250
+ if (!projectTreeItem) {
251
+ throw new Error(`Project tree item "${projectName}" not found`);
252
+ }
253
+ await projectTreeItem.click();
254
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT);
255
+ }
246
256
  }
@@ -1,5 +1,5 @@
1
1
  /** *******************************************************************
2
- * copyright (c) 2023-2025 Red Hat, Inc.
2
+ * copyright (c) 2023-2026 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -78,21 +78,68 @@ export class KubernetesCommandLineToolsExecutor implements IKubernetesCommandLin
78
78
 
79
79
  getContainerName(): string {
80
80
  Logger.debug(`${this.kubernetesCommandLineTool} - get container name.`);
81
+ Logger.debug(`Getting container name for pod: '${KubernetesCommandLineToolsExecutor.pod}' in namespace: ${this.namespace}`);
81
82
 
82
83
  const output: ShellString = this.shellExecutor.executeCommand(
83
- `${this.kubernetesCommandLineTool} get ${KubernetesCommandLineToolsExecutor.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`
84
+ `${this.kubernetesCommandLineTool} get pod ${KubernetesCommandLineToolsExecutor.pod} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`
84
85
  );
85
86
  echo('\n');
86
- return output.stderr ? output.stderr : output.stdout;
87
+ const containerName: string = output.stderr ? output.stderr : output.stdout;
88
+ Logger.debug(`Found container name: '${containerName}'`);
89
+ return containerName;
87
90
  }
88
91
 
89
92
  getWorkspacePodName(): string {
90
93
  Logger.debug(`${this.kubernetesCommandLineTool} - get workspace pod name.`);
94
+ Logger.debug(
95
+ `Looking for pod with label: controller.devfile.io/devworkspace_name=${this.workspaceName} in namespace: ${this.namespace}`
96
+ );
91
97
 
92
98
  const output: ShellString = this.shellExecutor.executeCommand(
93
99
  `${this.kubernetesCommandLineTool} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`
94
100
  );
95
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
101
+ let podName: string = output.stderr ? output.stderr : output.stdout.replace('\n', '');
102
+ Logger.debug(`Found pod name (before removing prefix): '${podName}'`);
103
+
104
+ // if pod not found, try to find by workspace name prefix (for restored workspaces with suffix)
105
+ if (!podName || podName.trim() === '') {
106
+ Logger.warn(`No pod found with exact label controller.devfile.io/devworkspace_name=${this.workspaceName}`);
107
+ Logger.debug(`Trying to find pod with workspace name starting with: ${this.workspaceName}`);
108
+
109
+ // get all pods and filter by label prefix
110
+ const allPodsOutput: ShellString = this.shellExecutor.executeCommand(
111
+ `${this.kubernetesCommandLineTool} get pods -n ${this.namespace} -o jsonpath='{range .items[*]}{.metadata.name}{"\\t"}{.metadata.labels.controller\\.devfile\\.io/devworkspace_name}{"\\n"}{end}'`
112
+ );
113
+
114
+ if (allPodsOutput.stdout && this.workspaceName) {
115
+ const lines: string[] = allPodsOutput.stdout.split('\n').filter((line: string): boolean => line.trim() !== '');
116
+ for (const line of lines) {
117
+ const [name, label] = line.split('\t');
118
+ if (label && this.workspaceName && label.startsWith(this.workspaceName)) {
119
+ Logger.info(`Found pod by prefix match: ${name} with label ${label}`);
120
+ podName = name;
121
+ // update workspace name to the actual one with suffix
122
+ this._workspaceName = label;
123
+ Logger.info(`Updated workspace name to: ${this._workspaceName}`);
124
+ break;
125
+ }
126
+ }
127
+ }
128
+
129
+ // if still not found, list all pods for debugging
130
+ if (!podName || podName.trim() === '') {
131
+ Logger.warn('Listing all pods in namespace for debugging:');
132
+ const debugPods: ShellString = this.shellExecutor.executeCommand(
133
+ `${this.kubernetesCommandLineTool} get pods -n ${this.namespace} --show-labels`
134
+ );
135
+ Logger.warn(`All pods:\n${debugPods.stdout}`);
136
+ }
137
+ }
138
+
139
+ // remove 'pod/' prefix if present (oc get -o name returns 'pod/podname')
140
+ const cleanPodName: string = podName.replace(/^pod\//, '');
141
+ Logger.debug(`Clean pod name (after removing prefix): '${cleanPodName}'`);
142
+ return cleanPodName;
96
143
  }
97
144
 
98
145
  deleteDevWorkspace(devfileName?: string): void {