@eclipse-che/che-e2e 7.46.1-dev-deca6d7 → 7.46.1-dev-e59785f

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 (57) hide show
  1. package/dist/driver/CheReporter.js +1 -1
  2. package/dist/driver/CheReporter.js.map +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/inversify.config.js +3 -1
  6. package/dist/inversify.config.js.map +1 -1
  7. package/dist/inversify.types.js +5 -3
  8. package/dist/inversify.types.js.map +1 -1
  9. package/dist/pageobjects/dashboard/Dashboard.js +51 -2
  10. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  11. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +4 -2
  12. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  13. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +4 -2
  14. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +1 -1
  15. package/dist/tests/e2e/FactoryUrl.spec.js +1 -1
  16. package/dist/tests/e2e/FactoryUrl.spec.js.map +1 -1
  17. package/dist/tests/e2e/GitPublishBranch.spec.js +1 -1
  18. package/dist/tests/e2e/GitPublishBranch.spec.js.map +1 -1
  19. package/dist/tests/e2e/GitSelfSignCert.spec.js +1 -1
  20. package/dist/tests/e2e/GitSelfSignCert.spec.js.map +1 -1
  21. package/dist/tests/e2e/GitSsh.spec.js +1 -1
  22. package/dist/tests/e2e/GitSsh.spec.js.map +1 -1
  23. package/dist/tests/e2e/OpenshiftConnector.spec.js +1 -1
  24. package/dist/tests/e2e/OpenshiftConnector.spec.js.map +1 -1
  25. package/dist/testsLibrary/CodeExecutionTests.js +11 -4
  26. package/dist/testsLibrary/CodeExecutionTests.js.map +1 -1
  27. package/dist/utils/requestHandlers/CheApiRequestHandler.js +3 -0
  28. package/dist/utils/requestHandlers/CheApiRequestHandler.js.map +1 -1
  29. package/dist/utils/workspace/ApiUrlResolver.js +35 -0
  30. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -0
  31. package/dist/utils/workspace/{ITestWorkspaceUtil.js → IApiUrlResolver.js} +1 -1
  32. package/dist/utils/workspace/IApiUrlResolver.js.map +1 -0
  33. package/dist/utils/workspace/TestWorkspaceUtil.js +151 -25
  34. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  35. package/dist/utils/workspace/WorkspaceStatus.js +3 -3
  36. package/driver/CheReporter.ts +2 -2
  37. package/index.ts +2 -1
  38. package/inversify.config.ts +5 -4
  39. package/inversify.types.ts +5 -3
  40. package/package.json +1 -1
  41. package/pageobjects/dashboard/Dashboard.ts +56 -2
  42. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +3 -3
  43. package/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.ts +3 -3
  44. package/tests/e2e/FactoryUrl.spec.ts +2 -2
  45. package/tests/e2e/GitPublishBranch.spec.ts +1 -1
  46. package/tests/e2e/GitSelfSignCert.spec.ts +12 -12
  47. package/tests/e2e/GitSsh.spec.ts +1 -1
  48. package/tests/e2e/OpenshiftConnector.spec.ts +1 -1
  49. package/tests/load_test/LoadTest.spec.ts +2 -0
  50. package/testsLibrary/CodeExecutionTests.ts +14 -5
  51. package/utils/requestHandlers/CheApiRequestHandler.ts +4 -0
  52. package/utils/workspace/ApiUrlResolver.ts +27 -0
  53. package/utils/workspace/IApiUrlResolver.ts +15 -0
  54. package/utils/workspace/TestWorkspaceUtil.ts +157 -29
  55. package/utils/workspace/WorkspaceStatus.ts +3 -3
  56. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
  57. package/utils/workspace/ITestWorkspaceUtil.ts +0 -26
@@ -110,6 +110,9 @@ let CheApiRequestHandler = class CheApiRequestHandler {
110
110
  async delete(relativeUrl) {
111
111
  return await axios_1.default.delete(this.assembleUrl(relativeUrl), await this.headerHandler.get());
112
112
  }
113
+ async patch(relativeUrl, patchParams) {
114
+ return await axios_1.default.patch(this.assembleUrl(relativeUrl), patchParams, await this.headerHandler.get());
115
+ }
113
116
  assembleUrl(relativeUrl) {
114
117
  return `${TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL}/${relativeUrl}`;
115
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CheApiRequestHandler.js","sourceRoot":"","sources":["../../../utils/requestHandlers/CheApiRequestHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CheApiRequestHandler.js","sourceRoot":"","sources":["../../../utils/requestHandlers/CheApiRequestHandler.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;;;AAExE,kDAAiE;AACjE,uDAAoD;AACpD,2DAA8C;AAC9C,yCAA+C;AAE/C,sCAAmC;AAGnC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAqE7B,YAAwE,aAA0C;QAA1C,kBAAa,GAAb,aAAa,CAA6B;IAAI,CAAC;IAnEvH;;OAEG;IACI,MAAM,CAAC,uBAAuB;QACjC,eAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO,eAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAE,OAAO,CAAC,EAAE;YACzC,IAAI;gBACA,IAAI,gBAAgB,GAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/E,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAChC,eAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;oBAChF,OAAO,OAAO,CAAC;iBAClB;gBACD,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,EAAE;oBACxC,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;oBAC3D,OAAO,OAAO,CAAC;iBAClB;gBACD,gBAAgB,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC;gBACpD,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC7C,eAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,gBAAgB,CAAC,CAAC;aAC/D;YAAC,OAAO,GAAG,EAAE;gBACV,eAAM,CAAC,KAAK,CAAC,kEAAkE,GAAG,GAAG,CAAC,CAAC;aAC1F;YACL,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,yBAAyB;QACnC,eAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,OAAO,eAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAE,QAAQ,CAAC,EAAE;YAC3C,IAAI;gBACA,IAAI,iBAAiB,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACtF,QAAQ,GAAG,EAAE;wBACT,KAAK,SAAS,CAAC,CAAC,OAAO,UAAU,CAAC;wBAClC,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;qBACzB;gBACL,CAAC,CAAC,CAAC,CAAC;gBACJ,IAAI,iBAAiB,KAAK,SAAS,EAAE;oBACjC,eAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;oBACjF,OAAO,QAAQ,CAAC;iBACnB;gBACD,IAAI,iBAAiB,CAAC,MAAM,KAAK,SAAS,EAAE;oBACxC,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;oBAC3D,OAAO,QAAQ,CAAC;iBACnB;gBACD,IAAI,iBAAiB,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;oBAChD,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;oBACnE,OAAO,QAAQ,CAAC;iBACnB;gBACD,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC;gBAC5D,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBACrD,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7C,iBAAiB,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;iBACpD;gBACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;oBAC9C,iBAAiB,CAAC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;iBACrD;gBACD,eAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,iBAAiB,CAAC,CAAC;aACjE;YAAC,OAAO,GAAG,EAAE;gBACV,eAAM,CAAC,KAAK,CAAC,8DAA8D,GAAG,GAAG,CAAC,CAAC;aACtF;YACL,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAID,KAAK,CAAC,GAAG,CAAC,WAAmB;QACzB,OAAO,MAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,IAAmB;QAC/C,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB;QAC5B,OAAO,MAAM,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,WAAmB;QACjD,OAAO,MAAM,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACxG,CAAC;IAEO,WAAW,CAAC,WAAmB;QACnC,OAAO,GAAG,6BAAa,CAAC,oBAAoB,IAAI,WAAW,EAAE,CAAC;IAClE,CAAC;CAEJ,CAAA;AA3FY,oBAAoB;IADhC,sBAAU,EAAE;IAsEI,WAAA,kBAAM,CAAC,uBAAK,CAAC,2BAA2B,CAAC,CAAA;;GArE7C,oBAAoB,CA2FhC;AA3FY,oDAAoB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ApiUrlResolver = void 0;
10
+ /*********************************************************************
11
+ * Copyright (c) 2019 Red Hat, Inc.
12
+ *
13
+ * This program and the accompanying materials are made
14
+ * available under the terms of the Eclipse Public License 2.0
15
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
16
+ *
17
+ * SPDX-License-Identifier: EPL-2.0
18
+ **********************************************************************/
19
+ const inversify_1 = require("inversify");
20
+ let ApiUrlResolver = class ApiUrlResolver {
21
+ constructor() {
22
+ this.dashboardApiUrl = 'dashboard/api/namespace';
23
+ }
24
+ getWorkspaceApiUrl(namespace, workspaceName) {
25
+ return `${this.getWorkspacesApiUrl(namespace)}/${workspaceName}`;
26
+ }
27
+ getWorkspacesApiUrl(namespace) {
28
+ return `${this.dashboardApiUrl}/${namespace}-che/devworkspaces`;
29
+ }
30
+ };
31
+ ApiUrlResolver = __decorate([
32
+ inversify_1.injectable()
33
+ ], ApiUrlResolver);
34
+ exports.ApiUrlResolver = ApiUrlResolver;
35
+ //# sourceMappingURL=ApiUrlResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/ApiUrlResolver.ts"],"names":[],"mappings":";;;;;;;;;AAEA;;;;;;;;wEAQwE;AACxE,yCAAuC;AAIvC,IAAa,cAAc,GAA3B,MAAa,cAAc;IAA3B;QACa,oBAAe,GAAW,yBAAyB,CAAC;IASjE,CAAC;IAPU,kBAAkB,CAAC,SAAiB,EAAE,aAAqB;QAC9D,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC;IACrE,CAAC;IAEM,mBAAmB,CAAC,SAAiB;QACxC,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,oBAAoB,CAAC;IACpE,CAAC;CACJ,CAAA;AAVY,cAAc;IAD1B,sBAAU,EAAE;GACA,cAAc,CAU1B;AAVY,wCAAc"}
@@ -9,4 +9,4 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  **********************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- //# sourceMappingURL=ITestWorkspaceUtil.js.map
12
+ //# sourceMappingURL=IApiUrlResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IApiUrlResolver.js","sourceRoot":"","sources":["../../../utils/workspace/IApiUrlResolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE"}
@@ -20,42 +20,143 @@ var __metadata = (this && this.__metadata) || function (k, v) {
20
20
  var __param = (this && this.__param) || function (paramIndex, decorator) {
21
21
  return function (target, key) { decorator(target, key, paramIndex); }
22
22
  };
23
+ var __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
23
26
  var TestWorkspaceUtil_1;
24
27
  Object.defineProperty(exports, "__esModule", { value: true });
25
28
  exports.TestWorkspaceUtil = void 0;
26
29
  const TestConstants_1 = require("../../TestConstants");
27
30
  const inversify_1 = require("inversify");
28
31
  const DriverHelper_1 = require("../DriverHelper");
32
+ const ApiUrlResolver_1 = require("./ApiUrlResolver");
29
33
  require("reflect-metadata");
34
+ const WorkspaceStatus_1 = require("./WorkspaceStatus");
30
35
  const selenium_webdriver_1 = require("selenium-webdriver");
31
36
  const CheApiRequestHandler_1 = require("../requestHandlers/CheApiRequestHandler");
32
37
  const inversify_types_1 = require("../../inversify.types");
33
38
  const Logger_1 = require("../Logger");
39
+ const axios_1 = __importDefault(require("axios"));
34
40
  let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
35
- constructor(driverHelper, processRequestHandler) {
41
+ constructor(driverHelper, processRequestHandler, apiUrlResolver) {
36
42
  this.driverHelper = driverHelper;
37
43
  this.processRequestHandler = processRequestHandler;
44
+ this.apiUrlResolver = apiUrlResolver;
45
+ this.attempts = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS;
46
+ this.polling = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_POLLING;
38
47
  }
39
48
  async waitWorkspaceStatus(namespace, workspaceName, expectedWorkspaceStatus) {
40
49
  Logger_1.Logger.debug('TestWorkspaceUtil.waitWorkspaceStatus');
41
- const workspaceStatusApiUrl = `${TestWorkspaceUtil_1.WORKSPACE_API_URL}/${namespace}:${workspaceName}`;
42
- const attempts = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS;
43
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_POLLING;
44
50
  let workspaceStatus = '';
45
- for (let i = 0; i < attempts; i++) {
46
- const response = await this.processRequestHandler.get(workspaceStatusApiUrl);
51
+ let expectedStatus = false;
52
+ for (let i = 0; i < this.attempts; i++) {
53
+ const response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName));
47
54
  if (response.status !== 200) {
48
- await this.driverHelper.wait(polling);
49
- continue;
55
+ throw new Error(`Can not get status of a workspace. Code: ${response.status} Data: ${response.data}`);
50
56
  }
51
- workspaceStatus = await response.data.status;
57
+ workspaceStatus = await response.data.status.phase;
52
58
  if (workspaceStatus === expectedWorkspaceStatus) {
53
- return;
59
+ expectedStatus = true;
60
+ break;
54
61
  }
55
- await this.driverHelper.wait(polling);
62
+ await this.driverHelper.wait(this.polling);
63
+ }
64
+ if (!expectedStatus) {
65
+ let waitTime = this.attempts * this.polling;
66
+ throw new selenium_webdriver_1.error.TimeoutError(`The workspace was not stopped in ${waitTime} ms. Currnet status is: ${workspaceStatus}`);
67
+ }
68
+ }
69
+ async stopWorkspaceByName(namespace, workspaceName) {
70
+ Logger_1.Logger.debug('TestWorkspaceUtil.stopWorkspaceByName');
71
+ const stopWorkspaceApiUrl = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
72
+ let stopWorkspaceResponse;
73
+ try {
74
+ stopWorkspaceResponse = await this.processRequestHandler.patch(stopWorkspaceApiUrl, [{ 'op': 'replace', 'path': '/spec/started', 'value': false }]);
75
+ }
76
+ catch (err) {
77
+ console.log(`Stop workspace call failed. URL used: ${stopWorkspaceApiUrl}`);
78
+ throw err;
79
+ }
80
+ if (stopWorkspaceResponse.status !== 200) {
81
+ throw new Error(`Cannot stop workspace. Code: ${stopWorkspaceResponse.status} Data: ${stopWorkspaceResponse.data}`);
56
82
  }
57
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded the maximum number of checking attempts, workspace status is: '${workspaceStatus}' different to '${expectedWorkspaceStatus}'`);
83
+ await this.waitWorkspaceStatus(namespace, workspaceName, WorkspaceStatus_1.WorkspaceStatus.STOPPED);
58
84
  }
85
+ // delete a worksapce without stopping phase (similar with force deleting)
86
+ async deleteWorkspaceByName(namespace, workspaceName) {
87
+ var _a, _b;
88
+ Logger_1.Logger.debug(`TestWorkspaceUtil.deleteWorkspaceByName ${workspaceName}`);
89
+ const deleteWorkspaceApiUrl = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
90
+ let deleteWorkspaceResponse;
91
+ let deleteWorkspaceStatus = false;
92
+ try {
93
+ deleteWorkspaceResponse = await this.processRequestHandler.delete(deleteWorkspaceApiUrl);
94
+ }
95
+ catch (error) {
96
+ if (axios_1.default.isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
97
+ Logger_1.Logger.error(`The workspace :${workspaceName} not found`);
98
+ throw error;
99
+ }
100
+ Logger_1.Logger.error(`Delete workspace call failed. URL used: ${deleteWorkspaceStatus}`);
101
+ throw error;
102
+ }
103
+ if (deleteWorkspaceResponse.status !== 204) {
104
+ throw new Error(`Can not delete workspace. Code: ${deleteWorkspaceResponse.status} Data: ${deleteWorkspaceResponse.data}`);
105
+ }
106
+ for (let i = 0; i < this.attempts; i++) {
107
+ try {
108
+ deleteWorkspaceResponse = await this.processRequestHandler.get(deleteWorkspaceApiUrl);
109
+ }
110
+ catch (error) {
111
+ if (axios_1.default.isAxiosError(error) && ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 404) {
112
+ deleteWorkspaceStatus = true;
113
+ break;
114
+ }
115
+ }
116
+ }
117
+ if (!deleteWorkspaceStatus) {
118
+ let waitTime = this.attempts * this.polling;
119
+ throw new selenium_webdriver_1.error.TimeoutError(`The workspace was not stopped in ${waitTime} ms.`);
120
+ }
121
+ }
122
+ // stop workspace before deleting with checking stopping phase
123
+ async stopAndDeleteWorkspaceByName(namespace, workspaceName) {
124
+ Logger_1.Logger.debug('TestWorkspaceUtil.stopAndDeleteWorkspaceByName');
125
+ await this.stopWorkspaceByName(namespace, workspaceName);
126
+ await this.deleteWorkspaceByName(namespace, workspaceName);
127
+ }
128
+ // stop all run workspaces in the namespace
129
+ async stopAllRunningWorkspaces(namespace) {
130
+ Logger_1.Logger.debug('TestWorkspaceUtil.stopAllRunProjects');
131
+ let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
132
+ for (let i = 0; i < response.data.items.length; i++) {
133
+ Logger_1.Logger.info('The project is being stopped: ' + response.data.items[i].metadata.name);
134
+ await this.stopWorkspaceByName(namespace, response.data.items[i].metadata.name);
135
+ }
136
+ }
137
+ // stop all run workspaces, check statused and remove the workspaces
138
+ async stopAndDeleteAllRunningWorkspaces(namespace) {
139
+ Logger_1.Logger.debug('TestWorkspaceUtil.stopAndDeleteAllRunProjects');
140
+ let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
141
+ await this.stopAllRunningWorkspaces(namespace);
142
+ for (let i = 0; i < response.data.items.length; i++) {
143
+ Logger_1.Logger.info('The project is being deleted: ' + response.data.items[i].metadata.name);
144
+ await this.deleteWorkspaceByName(namespace, response.data.items[i].metadata.name);
145
+ }
146
+ }
147
+ // stop all run workspaces without stopping and waiting for of 'Stopped' phase
148
+ // similar with 'force' deleting
149
+ async deleteAllWorkspaces(namespace) {
150
+ Logger_1.Logger.debug('TestWorkspaceUtil.deleteAllRunProjects');
151
+ let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
152
+ for (let i = 0; i < response.data.items.length; i++) {
153
+ Logger_1.Logger.info('The project is being deleted .......: ' + response.data.items[i].metadata.name);
154
+ await this.deleteWorkspaceByName(namespace, response.data.items[i].metadata.name);
155
+ }
156
+ }
157
+ /**
158
+ * @deprecated Method deprecated. Works with CHE server only
159
+ */
59
160
  async waitPluginAdding(namespace, workspaceName, pluginName) {
60
161
  Logger_1.Logger.debug('TestWorkspaceUtil.waitPluginAdding');
61
162
  const workspaceStatusApiUrl = `${TestWorkspaceUtil_1.WORKSPACE_API_URL}/${namespace}:${workspaceName}`;
@@ -78,6 +179,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
78
179
  await this.driverHelper.wait(polling);
79
180
  }
80
181
  }
182
+ /**
183
+ * @deprecated Method deprecated. Works with CHE server only
184
+ */
81
185
  async getListOfWorkspaceId() {
82
186
  Logger_1.Logger.debug('TestWorkspaceUtil.getListOfWorkspaceId');
83
187
  const getAllWorkspacesResponse = await this.processRequestHandler.get(TestWorkspaceUtil_1.WORKSPACE_API_URL);
@@ -89,11 +193,17 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
89
193
  }
90
194
  return wsList;
91
195
  }
196
+ /**
197
+ * @deprecated Method deprecated. Works with CHE server only
198
+ */
92
199
  async getIdOfRunningWorkspace(wsName) {
93
200
  Logger_1.Logger.debug('TestWorkspaceUtil.getIdOfRunningWorkspace');
94
201
  const getWorkspacesByNameResponse = await this.processRequestHandler.get(`${TestWorkspaceUtil_1.WORKSPACE_API_URL}/:${wsName}`);
95
202
  return getWorkspacesByNameResponse.data.id;
96
203
  }
204
+ /**
205
+ * @deprecated Method deprecated. Works with CHE server only
206
+ */
97
207
  async getIdOfRunningWorkspaces() {
98
208
  Logger_1.Logger.debug('TestWorkspaceUtil.getIdOfRunningWorkspaces');
99
209
  try {
@@ -113,12 +223,14 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
113
223
  throw err;
114
224
  }
115
225
  }
226
+ /**
227
+ * @deprecated Method deprecated. Works with CHE server only
228
+ */
116
229
  async removeWorkspaceById(id) {
117
230
  Logger_1.Logger.debug('TestWorkspaceUtil.removeWorkspaceById');
118
231
  const workspaceIdUrl = `${TestWorkspaceUtil_1.WORKSPACE_API_URL}/${id}`;
119
232
  try {
120
233
  const deleteWorkspaceResponse = await this.processRequestHandler.delete(workspaceIdUrl);
121
- // response code 204: "No Content" expected
122
234
  if (deleteWorkspaceResponse.status !== 204) {
123
235
  throw new Error(`Can not remove workspace. Code: ${deleteWorkspaceResponse.status} Data: ${deleteWorkspaceResponse.data}`);
124
236
  }
@@ -128,31 +240,28 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
128
240
  throw err;
129
241
  }
130
242
  }
243
+ /**
244
+ * @deprecated Method deprecated. Works with CHE server only
245
+ */
131
246
  async stopWorkspaceById(id) {
132
247
  Logger_1.Logger.debug('TestWorkspaceUtil.stopWorkspaceById');
133
248
  const stopWorkspaceApiUrl = `${TestWorkspaceUtil_1.WORKSPACE_API_URL}/${id}`;
134
249
  let stopWorkspaceResponse;
135
250
  try {
136
- stopWorkspaceResponse = await this.processRequestHandler.delete(`${stopWorkspaceApiUrl}/runtime`);
251
+ stopWorkspaceResponse = await this.processRequestHandler.delete(`${stopWorkspaceApiUrl}`);
137
252
  }
138
253
  catch (err) {
139
- console.log(`Stop workspace call failed. URL used: ${stopWorkspaceApiUrl}/runtime`);
254
+ console.log(`Stop workspace call failed. URL used: ${stopWorkspaceApiUrl}`);
140
255
  throw err;
141
256
  }
142
- // if workspace is already stopped, it will return 409: "Conflict"
143
- if (stopWorkspaceResponse.status === 409) {
144
- Logger_1.Logger.warn(`TestWorkspaceUtil.stopWorkspaceById Workspace {${id}} is already STOPPED`);
145
- return;
146
- }
147
- // response code 204: "No Content" expected
148
- if (stopWorkspaceResponse.status !== 204) {
257
+ if (stopWorkspaceResponse.status !== 200) {
149
258
  throw new Error(`Can not stop workspace. Code: ${stopWorkspaceResponse.status} Data: ${stopWorkspaceResponse.data}`);
150
259
  }
151
260
  let stopped = false;
152
261
  let wsStatus = await this.processRequestHandler.get(stopWorkspaceApiUrl);
153
262
  for (let i = 0; i < TestConstants_1.TestConstants.TS_SELENIUM_PLUGIN_PRECENCE_ATTEMPTS; i++) {
154
263
  wsStatus = await this.processRequestHandler.get(stopWorkspaceApiUrl);
155
- if (wsStatus.data.status === 'STOPPED') {
264
+ if (wsStatus.data.status === WorkspaceStatus_1.WorkspaceStatus.STOPPED) {
156
265
  stopped = true;
157
266
  break;
158
267
  }
@@ -163,6 +272,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
163
272
  throw new selenium_webdriver_1.error.TimeoutError(`The workspace was not stopped in ${waitTime} ms. Currnet status is: ${wsStatus.data.status}`);
164
273
  }
165
274
  }
275
+ /**
276
+ * @deprecated Method deprecated. Works with CHE server only
277
+ */
166
278
  async cleanUpAllWorkspaces() {
167
279
  Logger_1.Logger.debug('TestWorkspaceUtil.cleanUpAllWorkspaces');
168
280
  let listOfRunningWorkspaces = await this.getIdOfRunningWorkspaces();
@@ -174,6 +286,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
174
286
  await this.removeWorkspaceById(entry);
175
287
  }
176
288
  }
289
+ /**
290
+ * @deprecated Method deprecated. Works with CHE server only
291
+ */
177
292
  async cleanUpRunningWorkspace(workspaceName) {
178
293
  if (workspaceName === undefined || workspaceName.length === 0) {
179
294
  Logger_1.Logger.warn(`Could nod delete workspace because workspaceName is undefined or empty`);
@@ -190,6 +305,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
190
305
  Logger_1.Logger.trace(`TestWorkspaceUtil.cleanUpRunningWorkspace Deleting workspace ${workspaceName}`);
191
306
  await this.removeWorkspaceById(workspaceID);
192
307
  }
308
+ /**
309
+ * @deprecated Method deprecated. Works with CHE server only
310
+ */
193
311
  async createWsFromDevFile(customTemplate) {
194
312
  Logger_1.Logger.debug('TestWorkspaceUtil.createWsFromDevFile');
195
313
  try {
@@ -200,6 +318,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
200
318
  throw error;
201
319
  }
202
320
  }
321
+ /**
322
+ * @deprecated Method deprecated. Works with CHE server only
323
+ */
203
324
  async getBaseDevfile() {
204
325
  Logger_1.Logger.debug('TestWorkspaceUtil.getBaseDevfile');
205
326
  const baseDevfile = {
@@ -210,6 +331,9 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
210
331
  };
211
332
  return baseDevfile;
212
333
  }
334
+ /**
335
+ * @deprecated Method deprecated. Works with CHE server only
336
+ */
213
337
  async startWorkspace(workspaceId) {
214
338
  Logger_1.Logger.debug('TestWorkspaceUtil.startWorkspace');
215
339
  try {
@@ -221,13 +345,15 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
221
345
  }
222
346
  }
223
347
  };
224
- TestWorkspaceUtil.WORKSPACE_API_URL = 'api/workspace';
348
+ TestWorkspaceUtil.WORKSPACE_API_URL = 'dashboard/api/namespace';
225
349
  TestWorkspaceUtil = TestWorkspaceUtil_1 = __decorate([
226
350
  inversify_1.injectable(),
227
351
  __param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
228
352
  __param(1, inversify_1.inject(inversify_types_1.CLASSES.CheApiRequestHandler)),
353
+ __param(2, inversify_1.inject(inversify_types_1.CLASSES.ApiUrlResolver)),
229
354
  __metadata("design:paramtypes", [DriverHelper_1.DriverHelper,
230
- CheApiRequestHandler_1.CheApiRequestHandler])
355
+ CheApiRequestHandler_1.CheApiRequestHandler,
356
+ ApiUrlResolver_1.ApiUrlResolver])
231
357
  ], TestWorkspaceUtil);
232
358
  exports.TestWorkspaceUtil = TestWorkspaceUtil;
233
359
  //# sourceMappingURL=TestWorkspaceUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkspaceStatus = void 0;
13
13
  var WorkspaceStatus;
14
14
  (function (WorkspaceStatus) {
15
- WorkspaceStatus["RUNNING"] = "RUNNING";
16
- WorkspaceStatus["STOPPED"] = "STOPPED";
17
- WorkspaceStatus["STARTING"] = "STARTING";
15
+ WorkspaceStatus["RUNNING"] = "Running";
16
+ WorkspaceStatus["STOPPED"] = "Stopped";
17
+ WorkspaceStatus["STARTING"] = "Starting";
18
18
  })(WorkspaceStatus = exports.WorkspaceStatus || (exports.WorkspaceStatus = {}));
19
19
  //# sourceMappingURL=WorkspaceStatus.js.map
@@ -17,7 +17,7 @@ import { TestConstants } from '../TestConstants';
17
17
  import { logging } from 'selenium-webdriver';
18
18
  import { DriverHelper } from '../utils/DriverHelper';
19
19
  import { ScreenCatcher } from '../utils/ScreenCatcher';
20
- import { ITestWorkspaceUtil } from '../utils/workspace/ITestWorkspaceUtil';
20
+ import { TestWorkspaceUtil } from '../utils/workspace/TestWorkspaceUtil';
21
21
  // import { PreferencesHandler } from '../utils/PreferencesHandler';
22
22
  import { CheApiRequestHandler } from '../utils/requestHandlers/CheApiRequestHandler';
23
23
  import { TimeoutConstants } from '../TimeoutConstants';
@@ -32,7 +32,7 @@ const screenCatcher: ScreenCatcher = e2eContainer.get(CLASSES.ScreenCatcher);
32
32
  const sanitizer: Sanitizer = e2eContainer.get(CLASSES.Sanitizer);
33
33
  let methodIndex: number = 0;
34
34
  let deleteScreencast: boolean = true;
35
- let testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
35
+ let testWorkspaceUtil: TestWorkspaceUtil = e2eContainer.get(CLASSES.WorkspaceUtil);
36
36
  // let preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler);
37
37
 
38
38
  class CheReporter extends mocha.reporters.Spec {
package/index.ts CHANGED
@@ -20,7 +20,8 @@ export * from './utils/Sanitizer';
20
20
  export * from './utils/ScreenCatcher';
21
21
  export * from './utils/VCS/CheGitApi';
22
22
  export * from './utils/VCS/github/GitHubUtil';
23
- export * from './utils/workspace/ITestWorkspaceUtil';
23
+ export * from './utils/workspace/ApiUrlResolver';
24
+ export * from './utils/workspace/IApiUrlResolver';
24
25
  export * from './utils/WorkspaceNameHandler';
25
26
  export * from './utils/workspace/TestWorkspaceUtil';
26
27
  export * from './utils/workspace/WorkspaceStatus';
@@ -12,7 +12,6 @@ import { Container } from 'inversify';
12
12
  import { IDriver } from './driver/IDriver';
13
13
  import { ChromeDriver } from './driver/ChromeDriver';
14
14
  import { TYPES, CLASSES } from './inversify.types';
15
- import { ITestWorkspaceUtil } from './utils/workspace/ITestWorkspaceUtil';
16
15
  import { TestWorkspaceUtil } from './utils/workspace/TestWorkspaceUtil';
17
16
  import { IOcpLoginPage } from './pageobjects/login/IOcpLoginPage';
18
17
  import { OcpUserLoginPage } from './pageobjects/login/OcpUserLoginPage';
@@ -70,13 +69,14 @@ import { AnimationChecker } from './utils/AnimationChecker';
70
69
  import { WorkspaceNameHandler } from './utils/WorkspaceNameHandler';
71
70
  import { Sanitizer } from './utils/Sanitizer';
72
71
  import { NavigationBar } from './pageobjects/ide/NavigationBar';
72
+ import { ApiUrlResolver } from './utils/workspace/ApiUrlResolver';
73
+ import { IApiUrlResolver } from './utils/workspace/IApiUrlResolver';
74
+
73
75
 
74
76
  const e2eContainer: Container = new Container({ defaultScope: 'Transient' });
75
77
 
76
78
  e2eContainer.bind<IDriver>(TYPES.Driver).to(ChromeDriver).inSingletonScope();
77
- e2eContainer.bind<ITestWorkspaceUtil>(TYPES.WorkspaceUtil).to(TestWorkspaceUtil);
78
79
  e2eContainer.bind<IOcpLoginPage>(TYPES.OcpLogin).to(OcpUserLoginPage);
79
-
80
80
  e2eContainer.bind<IAuthorizationHeaderHandler>(TYPES.IAuthorizationHeaderHandler).to(CheMultiuserAuthorizationHeaderHandler);
81
81
  e2eContainer.bind<ITokenHandler>(TYPES.ITokenHandler).to(CheMultiuserTokenHandler);
82
82
 
@@ -132,5 +132,6 @@ e2eContainer.bind<GitOauthAppsSettings>(CLASSES.GitOauthAppsSettings).to(GitOaut
132
132
  e2eContainer.bind<AnimationChecker>(CLASSES.AnimationChecker).to(AnimationChecker);
133
133
  e2eContainer.bind<Sanitizer>(CLASSES.Sanitizer).to(Sanitizer);
134
134
  e2eContainer.bind<NavigationBar>(CLASSES.NavigationBar).to(NavigationBar);
135
-
135
+ e2eContainer.bind<IApiUrlResolver>(CLASSES.ApiUrlResolver).to(ApiUrlResolver);
136
+ e2eContainer.bind<TestWorkspaceUtil>(CLASSES.WorkspaceUtil).to(TestWorkspaceUtil);
136
137
  export { e2eContainer };
@@ -13,12 +13,13 @@ const TYPES = {
13
13
  Driver: Symbol.for('Driver'),
14
14
  CheLogin: Symbol.for('CheLogin'),
15
15
  OcpLogin: Symbol.for('OcpLogin'),
16
- WorkspaceUtil: Symbol.for('WorkspaceUtil'),
17
16
  IAuthorizationHeaderHandler: Symbol.for('IAuthorizationHeaderHandler'),
18
- ITokenHandler: Symbol.for('ITokenHandler')
17
+ ITokenHandler: Symbol.for('ITokenHandler'),
18
+ IApiUrlResolver: Symbol.for('IApiUrlResolver')
19
19
  };
20
20
 
21
21
  const CLASSES = {
22
+ WorkspaceUtil: 'WorkspaceUtil',
22
23
  DriverHelper: 'DriverHelper',
23
24
  Dashboard: 'Dashboard',
24
25
  Workspaces: 'Workspaces',
@@ -66,7 +67,8 @@ const CLASSES = {
66
67
  GitOauthAppsSettings: 'GitOauthAppsSettings',
67
68
  AnimationChecker: 'AnimationChecker',
68
69
  Sanitizer: 'Sanitizer',
69
- NavigationBar: 'NavigationBar'
70
+ NavigationBar: 'NavigationBar',
71
+ ApiUrlResolver: 'ApiUrlResolver'
70
72
  };
71
73
 
72
74
  export { TYPES, CLASSES };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.46.1-dev-deca6d7",
3
+ "version": "7.46.1-dev-e59785f",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -10,12 +10,13 @@
10
10
  import { inject, injectable } from 'inversify';
11
11
  import 'reflect-metadata';
12
12
  import { CLASSES } from '../../inversify.types';
13
- import { By } from 'selenium-webdriver';
13
+ import { By, error } from 'selenium-webdriver';
14
14
  import { DriverHelper } from '../../utils/DriverHelper';
15
15
  import { TestConstants } from '../../TestConstants';
16
16
  import { TimeoutConstants } from '../../TimeoutConstants';
17
17
  import { Workspaces } from './Workspaces';
18
18
  import { Logger } from '../../utils/Logger';
19
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
19
20
 
20
21
  @injectable()
21
22
  export class Dashboard {
@@ -25,7 +26,9 @@ export class Dashboard {
25
26
  private static readonly WORKSPACE_STARTING_PAGE_CSS: string = '.ide-loader-page';
26
27
 
27
28
  constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
28
- @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces) { }
29
+ @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces,
30
+ @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil
31
+ ) { }
29
32
 
30
33
  async stopWorkspaceByUI(workspaceName: string) {
31
34
  Logger.debug(`Dashboard.stopWorkspaceByUI "${workspaceName}"`);
@@ -58,11 +61,38 @@ export class Dashboard {
58
61
  await this.workspaces.waitWorkspaceListItemAbcence(workspaceName);
59
62
  }
60
63
 
64
+ async stopAndRemoveWorkspaceWithSelectingTab(workspaceName: string) {
65
+ Logger.debug(`Dashboard.stopAndRemoveWorkspaceWithSelectingTab "${workspaceName}"`);
66
+ await this.switchToDashboardTab();
67
+ await this.stopWorkspaceByUI(workspaceName);
68
+ await this.workspaces.deleteWorkspaceByActionsButton(workspaceName);
69
+ await this.workspaces.waitWorkspaceListItemAbcence(workspaceName);
70
+ }
71
+
61
72
  async openDashboard() {
62
73
  Logger.debug('Dashboard.openDashboard');
74
+ // sometimes we can have opened files. In this case we get Alert dialog. We should perform it.
63
75
  await this.driverHelper.getDriver().navigate().to(TestConstants.TS_SELENIUM_BASE_URL);
76
+
77
+ try {
78
+ await this.waitPage();
79
+ } catch (err) {
80
+ if (err instanceof error.UnexpectedAlertOpenError) {
81
+ this.driverHelper.getDriver().switchTo().alert().accept();
82
+ } else {
83
+ throw err;
84
+ }
85
+
86
+ }
64
87
  await this.waitPage();
88
+ }
65
89
 
90
+ // click on the Browser tab which has been registered in the WorkspaceHandlingTests class
91
+ async switchToDashboardTab() {
92
+ Logger.debug('Dashboard.openDashboardTab');
93
+
94
+ await this.findAndClickDashboardTab();
95
+ await this.waitPage();
66
96
  }
67
97
 
68
98
  async waitPage(timeout: number = TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT) {
@@ -114,4 +144,28 @@ export class Dashboard {
114
144
  return await this.driverHelper.waitAndGetText(By.css('[data-testid="recent-workspace-item"]'), timeout);
115
145
  }
116
146
 
147
+ async findAndClickDashboardTab(timeout: number = TimeoutConstants.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
148
+ Logger.debug('Dashboard.findAndClickDashboardTab');
149
+
150
+ await this.driverHelper.waitUntilTrue(async () => {
151
+ const windowHandles: string[] = await this.browserTabsUtil.getAllWindowHandles();
152
+
153
+ return windowHandles.length > 1;
154
+ }, timeout);
155
+
156
+ const windowHandles: string[] = await this.browserTabsUtil.getAllWindowHandles();
157
+
158
+ windowHandles.forEach(async windowHandle => {
159
+ await this.browserTabsUtil.switchToWindow(windowHandle);
160
+ try {
161
+ this.driverHelper.waitVisibility(By.xpath(Dashboard.CREATE_WORKSPACE_BUTTON_XPATH));
162
+ Logger.info('Dashboard tab has been selected');
163
+ return;
164
+ } catch {
165
+ Logger.warn('The Dashboard Tab is not found in the window: ' + this.browserTabsUtil.getCurrentWindowHandle());
166
+ }
167
+ });
168
+ Logger.warn('The Dashboard Tab is not opened');
169
+ }
170
+
117
171
  }