@eclipse-che/che-e2e 7.46.1-dev-54d33e9 → 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.
- package/dist/driver/CheReporter.js +1 -1
- package/dist/driver/CheReporter.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/inversify.config.js +3 -1
- package/dist/inversify.config.js.map +1 -1
- package/dist/inversify.types.js +5 -3
- package/dist/inversify.types.js.map +1 -1
- package/dist/pageobjects/dashboard/Dashboard.js +1 -1
- package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +4 -2
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +4 -2
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +1 -1
- package/dist/tests/e2e/FactoryUrl.spec.js +1 -1
- package/dist/tests/e2e/FactoryUrl.spec.js.map +1 -1
- package/dist/tests/e2e/GitPublishBranch.spec.js +1 -1
- package/dist/tests/e2e/GitPublishBranch.spec.js.map +1 -1
- package/dist/tests/e2e/GitSelfSignCert.spec.js +1 -1
- package/dist/tests/e2e/GitSelfSignCert.spec.js.map +1 -1
- package/dist/tests/e2e/GitSsh.spec.js +1 -1
- package/dist/tests/e2e/GitSsh.spec.js.map +1 -1
- package/dist/tests/e2e/OpenshiftConnector.spec.js +1 -1
- package/dist/tests/e2e/OpenshiftConnector.spec.js.map +1 -1
- package/dist/testsLibrary/CodeExecutionTests.js.map +1 -1
- package/dist/utils/workspace/ApiUrlResolver.js +35 -0
- package/dist/utils/workspace/ApiUrlResolver.js.map +1 -0
- package/dist/utils/workspace/{ITestWorkspaceUtil.js → IApiUrlResolver.js} +1 -1
- package/dist/utils/workspace/IApiUrlResolver.js.map +1 -0
- package/dist/utils/workspace/TestWorkspaceUtil.js +41 -9
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
- package/driver/CheReporter.ts +2 -2
- package/index.ts +2 -1
- package/inversify.config.ts +5 -4
- package/inversify.types.ts +5 -3
- package/package.json +1 -1
- package/pageobjects/dashboard/Dashboard.ts +9 -10
- package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +3 -3
- package/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.ts +3 -3
- package/tests/e2e/FactoryUrl.spec.ts +2 -2
- package/tests/e2e/GitPublishBranch.spec.ts +1 -1
- package/tests/e2e/GitSelfSignCert.spec.ts +12 -12
- package/tests/e2e/GitSsh.spec.ts +1 -1
- package/tests/e2e/OpenshiftConnector.spec.ts +1 -1
- package/tests/load_test/LoadTest.spec.ts +2 -0
- package/testsLibrary/CodeExecutionTests.ts +1 -1
- package/utils/workspace/ApiUrlResolver.ts +27 -0
- package/utils/workspace/IApiUrlResolver.ts +15 -0
- package/utils/workspace/TestWorkspaceUtil.ts +43 -11
- package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
- package/utils/workspace/ITestWorkspaceUtil.ts +0 -26
|
@@ -29,6 +29,7 @@ exports.TestWorkspaceUtil = void 0;
|
|
|
29
29
|
const TestConstants_1 = require("../../TestConstants");
|
|
30
30
|
const inversify_1 = require("inversify");
|
|
31
31
|
const DriverHelper_1 = require("../DriverHelper");
|
|
32
|
+
const ApiUrlResolver_1 = require("./ApiUrlResolver");
|
|
32
33
|
require("reflect-metadata");
|
|
33
34
|
const WorkspaceStatus_1 = require("./WorkspaceStatus");
|
|
34
35
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
@@ -37,19 +38,19 @@ const inversify_types_1 = require("../../inversify.types");
|
|
|
37
38
|
const Logger_1 = require("../Logger");
|
|
38
39
|
const axios_1 = __importDefault(require("axios"));
|
|
39
40
|
let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
|
|
40
|
-
constructor(driverHelper, processRequestHandler) {
|
|
41
|
+
constructor(driverHelper, processRequestHandler, apiUrlResolver) {
|
|
41
42
|
this.driverHelper = driverHelper;
|
|
42
43
|
this.processRequestHandler = processRequestHandler;
|
|
44
|
+
this.apiUrlResolver = apiUrlResolver;
|
|
43
45
|
this.attempts = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS;
|
|
44
46
|
this.polling = TestConstants_1.TestConstants.TS_SELENIUM_WORKSPACE_STATUS_POLLING;
|
|
45
47
|
}
|
|
46
48
|
async waitWorkspaceStatus(namespace, workspaceName, expectedWorkspaceStatus) {
|
|
47
49
|
Logger_1.Logger.debug('TestWorkspaceUtil.waitWorkspaceStatus');
|
|
48
|
-
const workspaceStatusApiUrl = `${TestWorkspaceUtil_1.WORKSPACE_API_URL}/${namespace}-che/devworkspaces/${workspaceName}`;
|
|
49
50
|
let workspaceStatus = '';
|
|
50
51
|
let expectedStatus = false;
|
|
51
52
|
for (let i = 0; i < this.attempts; i++) {
|
|
52
|
-
const response = await this.processRequestHandler.get(
|
|
53
|
+
const response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName));
|
|
53
54
|
if (response.status !== 200) {
|
|
54
55
|
throw new Error(`Can not get status of a workspace. Code: ${response.status} Data: ${response.data}`);
|
|
55
56
|
}
|
|
@@ -67,7 +68,7 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
|
|
|
67
68
|
}
|
|
68
69
|
async stopWorkspaceByName(namespace, workspaceName) {
|
|
69
70
|
Logger_1.Logger.debug('TestWorkspaceUtil.stopWorkspaceByName');
|
|
70
|
-
const stopWorkspaceApiUrl =
|
|
71
|
+
const stopWorkspaceApiUrl = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
|
|
71
72
|
let stopWorkspaceResponse;
|
|
72
73
|
try {
|
|
73
74
|
stopWorkspaceResponse = await this.processRequestHandler.patch(stopWorkspaceApiUrl, [{ 'op': 'replace', 'path': '/spec/started', 'value': false }]);
|
|
@@ -84,8 +85,8 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
|
|
|
84
85
|
// delete a worksapce without stopping phase (similar with force deleting)
|
|
85
86
|
async deleteWorkspaceByName(namespace, workspaceName) {
|
|
86
87
|
var _a, _b;
|
|
87
|
-
Logger_1.Logger.debug(
|
|
88
|
-
const deleteWorkspaceApiUrl =
|
|
88
|
+
Logger_1.Logger.debug(`TestWorkspaceUtil.deleteWorkspaceByName ${workspaceName}`);
|
|
89
|
+
const deleteWorkspaceApiUrl = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
|
|
89
90
|
let deleteWorkspaceResponse;
|
|
90
91
|
let deleteWorkspaceStatus = false;
|
|
91
92
|
try {
|
|
@@ -96,11 +97,11 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
|
|
|
96
97
|
Logger_1.Logger.error(`The workspace :${workspaceName} not found`);
|
|
97
98
|
throw error;
|
|
98
99
|
}
|
|
99
|
-
Logger_1.Logger.error(`
|
|
100
|
+
Logger_1.Logger.error(`Delete workspace call failed. URL used: ${deleteWorkspaceStatus}`);
|
|
100
101
|
throw error;
|
|
101
102
|
}
|
|
102
103
|
if (deleteWorkspaceResponse.status !== 204) {
|
|
103
|
-
throw new Error(`Can not
|
|
104
|
+
throw new Error(`Can not delete workspace. Code: ${deleteWorkspaceResponse.status} Data: ${deleteWorkspaceResponse.data}`);
|
|
104
105
|
}
|
|
105
106
|
for (let i = 0; i < this.attempts; i++) {
|
|
106
107
|
try {
|
|
@@ -124,6 +125,35 @@ let TestWorkspaceUtil = TestWorkspaceUtil_1 = class TestWorkspaceUtil {
|
|
|
124
125
|
await this.stopWorkspaceByName(namespace, workspaceName);
|
|
125
126
|
await this.deleteWorkspaceByName(namespace, workspaceName);
|
|
126
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
|
+
}
|
|
127
157
|
/**
|
|
128
158
|
* @deprecated Method deprecated. Works with CHE server only
|
|
129
159
|
*/
|
|
@@ -320,8 +350,10 @@ TestWorkspaceUtil = TestWorkspaceUtil_1 = __decorate([
|
|
|
320
350
|
inversify_1.injectable(),
|
|
321
351
|
__param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
|
|
322
352
|
__param(1, inversify_1.inject(inversify_types_1.CLASSES.CheApiRequestHandler)),
|
|
353
|
+
__param(2, inversify_1.inject(inversify_types_1.CLASSES.ApiUrlResolver)),
|
|
323
354
|
__metadata("design:paramtypes", [DriverHelper_1.DriverHelper,
|
|
324
|
-
CheApiRequestHandler_1.CheApiRequestHandler
|
|
355
|
+
CheApiRequestHandler_1.CheApiRequestHandler,
|
|
356
|
+
ApiUrlResolver_1.ApiUrlResolver])
|
|
325
357
|
], TestWorkspaceUtil);
|
|
326
358
|
exports.TestWorkspaceUtil = TestWorkspaceUtil;
|
|
327
359
|
//# sourceMappingURL=TestWorkspaceUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;;;;AAGxE,uDAAoD;AACpD,yCAA+C;AAC/C,kDAA+C;AAC/C,4BAA0B;AAC1B,uDAAoD;AAEpD,2DAA2C;AAC3C,kFAA+E;AAC/E,2DAAgD;AAChD,sCAAmC;AACnC,kDAA0B;AAG1B,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAK1B,YACmD,YAA0B,EAClB,qBAA2C;QADnD,iBAAY,GAAZ,YAAY,CAAc;QAClB,0BAAqB,GAArB,qBAAqB,CAAsB;QAJ7F,aAAQ,GAAW,6BAAa,CAAC,qCAAqC,CAAC;QACvE,YAAO,GAAW,6BAAa,CAAC,oCAAoC,CAAC;IAI1E,CAAC;IAEE,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,aAAqB,EAAE,uBAAwC;QAC/G,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,qBAAqB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,SAAS,sBAAsB,aAAa,EAAE,CAAC;QAC/H,IAAI,eAAe,GAAW,EAAE,CAAC;QACjC,IAAI,cAAc,GAAY,KAAK,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAE7E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;aACzG;YAED,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAEnD,IAAI,eAAe,KAAK,uBAAuB,EAAE;gBAC7C,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;aACT;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5C,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,2BAA2B,eAAe,EAAE,CAAC,CAAC;SAC1H;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,aAAqB;QACrE,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,mBAAmB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,SAAS,sBAAsB,aAAa,EAAE,CAAC;QAC7H,IAAI,qBAAqB,CAAC;QAE1B,IAAI;YACA,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;SACrJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,mBAAmB,EAAE,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC;SACb;QAED,IAAI,qBAAqB,CAAC,MAAM,KAAK,GAAG,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,qBAAqB,CAAC,MAAM,UAAU,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;SACvH;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,iCAAe,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,0EAA0E;IACnE,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,aAAqB;;QACvE,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAExD,MAAM,qBAAqB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,SAAS,sBAAsB,aAAa,EAAE,CAAC;QAC/H,IAAI,uBAAuB,CAAC;QAC5B,IAAI,qBAAqB,GAAY,KAAK,CAAC;QAC3C,IAAI;YACA,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5F;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;gBAC7D,eAAM,CAAC,KAAK,CAAC,kBAAkB,aAAa,YAAY,CAAC,CAAC;gBAC1D,MAAM,KAAK,CAAC;aACf;YACD,eAAM,CAAC,KAAK,CAAC,yCAAyC,qBAAqB,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,CAAC;SACf;QAED,IAAI,uBAAuB,CAAC,MAAM,KAAK,GAAG,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,uBAAuB,CAAC,MAAM,UAAU,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5H;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YAEpC,IAAI;gBACA,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;aACzF;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;oBAC7D,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,CAAC,qBAAqB,EAAE;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5C,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,MAAM,CAAC,CAAC;SACpF;IACL,CAAC;IAED,8DAA8D;IACvD,KAAK,CAAC,4BAA4B,CAAC,SAAiB,EAAE,aAAqB;QAC9E,eAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAE/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,aAAqB,EAAE,UAAkB;QACtF,eAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEnD,MAAM,qBAAqB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC7G,MAAM,QAAQ,GAAW,6BAAa,CAAC,oCAAoC,CAAC;QAC5E,MAAM,OAAO,GAAW,6BAAa,CAAC,2BAA2B,CAAC;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAE7E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,SAAS;aACZ;YAED,MAAM,QAAQ,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxE,MAAM,eAAe,GAAY,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEjE,IAAI,eAAe,EAAE;gBACjB,MAAM;aACT;YAED,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,EAAE;gBACpB,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,yCAAyC,UAAU,mDAAmD,CAAC,CAAC;aACxI;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC7B,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAEvD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAO3G,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,iBAAiB,GAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,MAAM,GAAkB,EAAE,CAAC;QAE/B,KAAK,IAAI,KAAK,IAAI,iBAAiB,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACzB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QAC/C,eAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE1D,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,mBAAiB,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC,CAAC;QAC9H,OAAO,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;IAE/C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB;QACjC,eAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAE3D,IAAI;YACA,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAM3G,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,iBAAiB,GAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,oBAAoB,GAAkB,IAAI,KAAK,EAAE,CAAC;YAEtD,KAAK,IAAI,KAAK,IAAI,iBAAiB,EAAE;gBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC5B,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACvC;aACJ;YAED,OAAO,oBAAoB,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,sDAAsD,mBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACzG,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAC9E,IAAI;YACA,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACxF,IAAI,uBAAuB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,uBAAuB,CAAC,MAAM,UAAU,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;aAC9H;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,EAAU;QACrC,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEpD,MAAM,mBAAmB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACnF,IAAI,qBAAqB,CAAC;QAE1B,IAAI;YACA,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,mBAAmB,EAAE,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC;SACb;QAED,IAAI,qBAAqB,CAAC,MAAM,KAAK,GAAG,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,qBAAqB,CAAC,MAAM,UAAU,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;SACxH;QAED,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,6BAAa,CAAC,oCAAoC,EAAE,CAAC,EAAE,EAAE;YACzE,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,iCAAe,CAAC,OAAO,EAAE;gBAClD,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;aACT;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAAa,CAAC,2BAA2B,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,QAAQ,GAAG,6BAAa,CAAC,oCAAoC,GAAG,6BAAa,CAAC,2BAA2B,CAAC;YAC9G,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,2BAA2B,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/H;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC7B,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAEvD,IAAI,uBAAuB,GAAkB,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACnF,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE;YACzC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,IAAI,iBAAiB,GAAkB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE;YACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACzC;IAEL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,aAAqB;QACtD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7D,eAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO;SACR;QAED,eAAM,CAAC,KAAK,CAAC,6CAA6C,aAAa,EAAE,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAW,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAE9E,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YACzD,eAAM,CAAC,KAAK,CAAC,wCAAwC,aAAa,4CAA4C,CAAC,CAAC;YAChH,OAAO;SACR;QAED,eAAM,CAAC,KAAK,CAAC,gEAAgE,aAAa,YAAY,WAAW,EAAE,CAAC,CAAC;QACrH,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC1C,eAAM,CAAC,KAAK,CAAC,gEAAgE,aAAa,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,cAA6C;QACnE,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,IAAI;YACA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAiB,CAAC,iBAAiB,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC;SAC3G;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAkC;YAC/C,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE;gBACN,IAAI,EAAE,gBAAgB;aACzB;SACJ,CAAC;QAEF,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACpC,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEjD,IAAI;YACA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,WAAW,UAAU,CAAC,CAAC;SAC1G;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;CAEJ,CAAA;AAxVmB,mCAAiB,GAAW,yBAAyB,CAAC;AAF7D,iBAAiB;IAD7B,sBAAU,EAAE;IAOJ,WAAA,kBAAM,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAA;IAC5B,WAAA,kBAAM,CAAC,yBAAO,CAAC,oBAAoB,CAAC,CAAA;qCADwB,2BAAY;QACK,2CAAoB;GAP7F,iBAAiB,CA0V7B;AA1VY,8CAAiB"}
|
|
1
|
+
{"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;;;;AAGxE,uDAAoD;AACpD,yCAA+C;AAC/C,kDAA+C;AAC/C,qDAAkD;AAClD,4BAA0B;AAC1B,uDAAoD;AACpD,2DAA2C;AAC3C,kFAA+E;AAC/E,2DAAgD;AAChD,sCAAmC;AACnC,kDAA0B;AAG1B,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAK1B,YACmD,YAA0B,EAClB,qBAA2C,EACjD,cAA8B;QAFhC,iBAAY,GAAZ,YAAY,CAAc;QAClB,0BAAqB,GAArB,qBAAqB,CAAsB;QACjD,mBAAc,GAAd,cAAc,CAAgB;QAL1E,aAAQ,GAAW,6BAAa,CAAC,qCAAqC,CAAC;QACvE,YAAO,GAAW,6BAAa,CAAC,oCAAoC,CAAC;IAK1E,CAAC;IAEE,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,aAAqB,EAAE,uBAAwC;QAC/G,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,IAAI,eAAe,GAAW,EAAE,CAAC;QACjC,IAAI,cAAc,GAAY,KAAK,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;YAExH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;aACzG;YAED,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAEnD,IAAI,eAAe,KAAK,uBAAuB,EAAE;gBAC7C,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;aACT;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5C,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,2BAA2B,eAAe,EAAE,CAAC,CAAC;SAC1H;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,aAAqB;QACrE,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,mBAAmB,GAAW,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrG,IAAI,qBAAqB,CAAC;QAE1B,IAAI;YACA,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;SACrJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,mBAAmB,EAAE,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC;SACb;QAED,IAAI,qBAAqB,CAAC,MAAM,KAAK,GAAG,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,qBAAqB,CAAC,MAAM,UAAU,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;SACvH;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,iCAAe,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,0EAA0E;IACnE,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,aAAqB;;QACvE,eAAM,CAAC,KAAK,CAAC,2CAA2C,aAAa,EAAE,CAAE,CAAC;QAE1E,MAAM,qBAAqB,GAAW,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvG,IAAI,uBAAuB,CAAC;QAC5B,IAAI,qBAAqB,GAAY,KAAK,CAAC;QAC3C,IAAI;YACA,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5F;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;gBAC7D,eAAM,CAAC,KAAK,CAAC,kBAAkB,aAAa,YAAY,CAAC,CAAC;gBAC1D,MAAM,KAAK,CAAC;aACf;YACD,eAAM,CAAC,KAAK,CAAC,2CAA2C,qBAAqB,EAAE,CAAC,CAAC;YACjF,MAAM,KAAK,CAAC;SACf;QAED,IAAI,uBAAuB,CAAC,MAAM,KAAK,GAAG,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,uBAAuB,CAAC,MAAM,UAAU,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9H;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI;gBACA,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;aACzF;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE;oBAC7D,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,CAAC,qBAAqB,EAAE;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5C,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,MAAM,CAAC,CAAC;SACpF;IACL,CAAC;IAED,8DAA8D;IACvD,KAAK,CAAC,4BAA4B,CAAC,SAAiB,EAAE,aAAqB;QAC9E,eAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAE/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,wBAAwB,CAAC,SAAiB;QACnD,eAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QACxG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,eAAM,CAAC,IAAI,CAAC,gCAAgC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACnF;IACL,CAAC;IAED,oEAAoE;IAC7D,KAAK,CAAC,iCAAiC,CAAC,SAAiB;QAC5D,eAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QACxG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,eAAM,CAAC,IAAI,CAAC,gCAAgC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrF;IACL,CAAC;IAED,8EAA8E;IAC9E,gCAAgC;IACzB,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QAC9C,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QAExG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,eAAM,CAAC,IAAI,CAAC,wCAAwC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9F,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrF;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,aAAqB,EAAE,UAAkB;QACtF,eAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEnD,MAAM,qBAAqB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC7G,MAAM,QAAQ,GAAW,6BAAa,CAAC,oCAAoC,CAAC;QAC5E,MAAM,OAAO,GAAW,6BAAa,CAAC,2BAA2B,CAAC;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAE7E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,SAAS;aACZ;YAED,MAAM,QAAQ,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxE,MAAM,eAAe,GAAY,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEjE,IAAI,eAAe,EAAE;gBACjB,MAAM;aACT;YAED,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,EAAE;gBACpB,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,yCAAyC,UAAU,mDAAmD,CAAC,CAAC;aACxI;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC7B,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAEvD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAO3G,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,iBAAiB,GAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,MAAM,GAAkB,EAAE,CAAC;QAE/B,KAAK,IAAI,KAAK,IAAI,iBAAiB,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACzB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QAC/C,eAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAE1D,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,mBAAiB,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC,CAAC;QAC9H,OAAO,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;IAE/C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB;QACjC,eAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAE3D,IAAI;YACA,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAM3G,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,iBAAiB,GAAa,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,oBAAoB,GAAkB,IAAI,KAAK,EAAE,CAAC;YAEtD,KAAK,IAAI,KAAK,IAAI,iBAAiB,EAAE;gBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;oBAC5B,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACvC;aACJ;YAED,OAAO,oBAAoB,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,sDAAsD,mBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACzG,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAC9E,IAAI;YACA,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACxF,IAAI,uBAAuB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,uBAAuB,CAAC,MAAM,UAAU,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;aAC9H;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,EAAU;QACrC,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEpD,MAAM,mBAAmB,GAAW,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACnF,IAAI,qBAAqB,CAAC;QAE1B,IAAI;YACA,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,mBAAmB,EAAE,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC;SACb;QAED,IAAI,qBAAqB,CAAC,MAAM,KAAK,GAAG,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,qBAAqB,CAAC,MAAM,UAAU,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;SACxH;QAED,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,6BAAa,CAAC,oCAAoC,EAAE,CAAC,EAAE,EAAE;YACzE,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,iCAAe,CAAC,OAAO,EAAE;gBAClD,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;aACT;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAAa,CAAC,2BAA2B,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,QAAQ,GAAG,6BAAa,CAAC,oCAAoC,GAAG,6BAAa,CAAC,2BAA2B,CAAC;YAC9G,MAAM,IAAI,0BAAK,CAAC,YAAY,CAAC,oCAAoC,QAAQ,2BAA2B,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/H;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC7B,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAEvD,IAAI,uBAAuB,GAAkB,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACnF,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE;YACzC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,IAAI,iBAAiB,GAAkB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE;YACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACzC;IAEL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,aAAqB;QACtD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7D,eAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO;SACR;QAED,eAAM,CAAC,KAAK,CAAC,6CAA6C,aAAa,EAAE,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAW,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAE9E,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YACzD,eAAM,CAAC,KAAK,CAAC,wCAAwC,aAAa,4CAA4C,CAAC,CAAC;YAChH,OAAO;SACR;QAED,eAAM,CAAC,KAAK,CAAC,gEAAgE,aAAa,YAAY,WAAW,EAAE,CAAC,CAAC;QACrH,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC1C,eAAM,CAAC,KAAK,CAAC,gEAAgE,aAAa,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,cAA6C;QACnE,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,IAAI;YACA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAiB,CAAC,iBAAiB,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC;SAC3G;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAkC;YAC/C,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE;gBACN,IAAI,EAAE,gBAAgB;aACzB;SACJ,CAAC;QAEF,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACpC,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEjD,IAAI;YACA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,mBAAiB,CAAC,iBAAiB,IAAI,WAAW,UAAU,CAAC,CAAC;SAC1G;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,CAAC;SACf;IACL,CAAC;CAEJ,CAAA;AAxXmB,mCAAiB,GAAW,yBAAyB,CAAC;AAF7D,iBAAiB;IAD7B,sBAAU,EAAE;IAOJ,WAAA,kBAAM,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAA;IAC5B,WAAA,kBAAM,CAAC,yBAAO,CAAC,oBAAoB,CAAC,CAAA;IACpC,WAAA,kBAAM,CAAC,yBAAO,CAAC,cAAc,CAAC,CAAA;qCAF8B,2BAAY;QACK,2CAAoB;QACjC,+BAAc;GAR1E,iBAAiB,CA0X7B;AA1XY,8CAAiB"}
|
package/driver/CheReporter.ts
CHANGED
|
@@ -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 {
|
|
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:
|
|
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/
|
|
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';
|
package/inversify.config.ts
CHANGED
|
@@ -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 };
|
package/inversify.types.ts
CHANGED
|
@@ -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
|
@@ -27,7 +27,7 @@ export class Dashboard {
|
|
|
27
27
|
|
|
28
28
|
constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
|
|
29
29
|
@inject(CLASSES.Workspaces) private readonly workspaces: Workspaces,
|
|
30
|
-
@inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil
|
|
30
|
+
@inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil
|
|
31
31
|
) { }
|
|
32
32
|
|
|
33
33
|
async stopWorkspaceByUI(workspaceName: string) {
|
|
@@ -63,7 +63,7 @@ export class Dashboard {
|
|
|
63
63
|
|
|
64
64
|
async stopAndRemoveWorkspaceWithSelectingTab(workspaceName: string) {
|
|
65
65
|
Logger.debug(`Dashboard.stopAndRemoveWorkspaceWithSelectingTab "${workspaceName}"`);
|
|
66
|
-
await this.switchToDashboardTab()
|
|
66
|
+
await this.switchToDashboardTab();
|
|
67
67
|
await this.stopWorkspaceByUI(workspaceName);
|
|
68
68
|
await this.workspaces.deleteWorkspaceByActionsButton(workspaceName);
|
|
69
69
|
await this.workspaces.waitWorkspaceListItemAbcence(workspaceName);
|
|
@@ -71,9 +71,9 @@ export class Dashboard {
|
|
|
71
71
|
|
|
72
72
|
async openDashboard() {
|
|
73
73
|
Logger.debug('Dashboard.openDashboard');
|
|
74
|
-
//sometimes we can have opened files. In this case we get Alert dialog. We should perform it.
|
|
74
|
+
// sometimes we can have opened files. In this case we get Alert dialog. We should perform it.
|
|
75
75
|
await this.driverHelper.getDriver().navigate().to(TestConstants.TS_SELENIUM_BASE_URL);
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
try {
|
|
78
78
|
await this.waitPage();
|
|
79
79
|
} catch (err) {
|
|
@@ -90,7 +90,7 @@ export class Dashboard {
|
|
|
90
90
|
// click on the Browser tab which has been registered in the WorkspaceHandlingTests class
|
|
91
91
|
async switchToDashboardTab() {
|
|
92
92
|
Logger.debug('Dashboard.openDashboardTab');
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
await this.findAndClickDashboardTab();
|
|
95
95
|
await this.waitPage();
|
|
96
96
|
}
|
|
@@ -159,14 +159,13 @@ export class Dashboard {
|
|
|
159
159
|
await this.browserTabsUtil.switchToWindow(windowHandle);
|
|
160
160
|
try {
|
|
161
161
|
this.driverHelper.waitVisibility(By.xpath(Dashboard.CREATE_WORKSPACE_BUTTON_XPATH));
|
|
162
|
-
Logger.info('Dashboard tab has been selected')
|
|
162
|
+
Logger.info('Dashboard tab has been selected');
|
|
163
163
|
return;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
Logger.warn('The Dashboard Tab is not found in the window: ' + this.browserTabsUtil.getCurrentWindowHandle())
|
|
164
|
+
} catch {
|
|
165
|
+
Logger.warn('The Dashboard Tab is not found in the window: ' + this.browserTabsUtil.getCurrentWindowHandle());
|
|
167
166
|
}
|
|
168
167
|
});
|
|
169
|
-
Logger.warn('The Dashboard Tab is not opened')
|
|
168
|
+
Logger.warn('The Dashboard Tab is not opened');
|
|
170
169
|
}
|
|
171
170
|
|
|
172
171
|
}
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
**********************************************************************/
|
|
10
10
|
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
|
-
import { CLASSES
|
|
12
|
+
import { CLASSES } from '../../../inversify.types';
|
|
13
13
|
import 'reflect-metadata';
|
|
14
14
|
import { TestConstants } from '../../../TestConstants';
|
|
15
15
|
import { By } from 'selenium-webdriver';
|
|
16
16
|
import { Ide } from '../../ide/Ide';
|
|
17
|
-
import {
|
|
17
|
+
import { TestWorkspaceUtil } from '../../../utils/workspace/TestWorkspaceUtil';
|
|
18
18
|
import { WorkspaceStatus } from '../../../utils/workspace/WorkspaceStatus';
|
|
19
19
|
import { Logger } from '../../../utils/Logger';
|
|
20
20
|
import { TimeoutConstants } from '../../../TimeoutConstants';
|
|
@@ -29,7 +29,7 @@ export class WorkspaceDetails {
|
|
|
29
29
|
private static readonly WORKSPACE_DETAILS_LOADER_CSS: string = 'workspace-details-overview md-progress-linear';
|
|
30
30
|
|
|
31
31
|
constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
|
|
32
|
-
@inject(
|
|
32
|
+
@inject(CLASSES.WorkspaceUtil) private readonly testWorkspaceUtil: TestWorkspaceUtil) { }
|
|
33
33
|
|
|
34
34
|
async waitLoaderDisappearance(attempts: number = TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
|
|
35
35
|
Logger.debug('WorkspaceDetails.waitLoaderDisappearance');
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
12
|
import 'reflect-metadata';
|
|
13
|
-
import { CLASSES
|
|
13
|
+
import { CLASSES } from '../../../inversify.types';
|
|
14
14
|
import { By } from 'selenium-webdriver';
|
|
15
15
|
import { WorkspaceDetails } from './WorkspaceDetails';
|
|
16
|
-
import {
|
|
16
|
+
import { TestWorkspaceUtil } from '../../../utils/workspace/TestWorkspaceUtil';
|
|
17
17
|
import { WorkspaceStatus } from '../../../utils/workspace/WorkspaceStatus';
|
|
18
18
|
import { Logger } from '../../../utils/Logger';
|
|
19
19
|
import { TimeoutConstants } from '../../../TimeoutConstants';
|
|
@@ -23,7 +23,7 @@ import { TimeoutConstants } from '../../../TimeoutConstants';
|
|
|
23
23
|
export class WorkspaceDetailsPlugins {
|
|
24
24
|
constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
|
|
25
25
|
@inject(CLASSES.WorkspaceDetails) private readonly workspaceDetails: WorkspaceDetails,
|
|
26
|
-
@inject(
|
|
26
|
+
@inject(CLASSES.WorkspaceUtil) private readonly testWorkspaceUtil: TestWorkspaceUtil) { }
|
|
27
27
|
|
|
28
28
|
async waitPluginListItem(pluginName: string) {
|
|
29
29
|
Logger.debug(`WorkspaceDetailsPlugins.waitPluginListItem ${pluginName}`);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// **********************************************************************/
|
|
10
10
|
|
|
11
11
|
import { e2eContainer } from '../../inversify.config';
|
|
12
|
-
import { CLASSES
|
|
12
|
+
import { CLASSES } from '../../inversify.types';
|
|
13
13
|
import { TestConstants } from '../../TestConstants';
|
|
14
14
|
import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests';
|
|
15
15
|
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
@@ -18,7 +18,7 @@ import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTest
|
|
|
18
18
|
|
|
19
19
|
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
20
20
|
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
21
|
-
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(
|
|
21
|
+
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(CLASSES.WorkspaceUtil);
|
|
22
22
|
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get<WorkspaceHandlingTests>(CLASSES.WorkspaceHandlingTests);
|
|
23
23
|
|
|
24
24
|
const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://raw.githubusercontent.com/eclipse/che-devfile-registry/master/devfiles/java-maven/devfile.yaml`;
|
|
@@ -34,7 +34,7 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
|
|
|
34
34
|
const loginPage: ICheLoginPage = e2eContainer.get<ICheLoginPage>(TYPES.CheLogin);
|
|
35
35
|
const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
|
|
36
36
|
const gitPlugin: GitPlugin = e2eContainer.get(CLASSES.GitPlugin);
|
|
37
|
-
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(
|
|
37
|
+
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(CLASSES.WorkspaceUtil);
|
|
38
38
|
const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler);
|
|
39
39
|
|
|
40
40
|
const workspacePrefixUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/dashboard/#/ide/${TestConstants.TS_SELENIUM_USERNAME}/`;
|
|
@@ -25,18 +25,18 @@ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
|
25
25
|
import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests';
|
|
26
26
|
import { Editor } from '../../pageobjects/ide/Editor';
|
|
27
27
|
|
|
28
|
-
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
29
|
-
const ide: Ide = e2eContainer.get(CLASSES.Ide);
|
|
30
|
-
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
31
|
-
const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer);
|
|
32
|
-
const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
|
|
33
|
-
const loginPage: ICheLoginPage = e2eContainer.get<ICheLoginPage>(TYPES.CheLogin);
|
|
34
|
-
const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
|
|
35
|
-
const gitPlugin: GitPlugin = e2eContainer.get(CLASSES.GitPlugin);
|
|
36
|
-
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(
|
|
37
|
-
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
38
|
-
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
39
|
-
const editor: Editor = e2eContainer.get(CLASSES.Editor);
|
|
28
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
29
|
+
const ide: Ide = e2eContainer.get(CLASSES.Ide);
|
|
30
|
+
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
31
|
+
const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer);
|
|
32
|
+
const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
|
|
33
|
+
const loginPage: ICheLoginPage = e2eContainer.get<ICheLoginPage>(TYPES.CheLogin);
|
|
34
|
+
const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
|
|
35
|
+
const gitPlugin: GitPlugin = e2eContainer.get(CLASSES.GitPlugin);
|
|
36
|
+
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(CLASSES.WorkspaceUtil);
|
|
37
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
38
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
39
|
+
const editor: Editor = e2eContainer.get(CLASSES.Editor);
|
|
40
40
|
|
|
41
41
|
const workspaceName = 'gitSelfSignCert';
|
|
42
42
|
|
package/tests/e2e/GitSsh.spec.ts
CHANGED
|
@@ -39,7 +39,7 @@ const gitHubUtils: GitHubUtil = e2eContainer.get<GitHubUtil>(CLASSES.GitHubUtil)
|
|
|
39
39
|
const cheGitAPI: CheGitApi = e2eContainer.get(CLASSES.CheGitApi);
|
|
40
40
|
const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
|
|
41
41
|
const gitPlugin: GitPlugin = e2eContainer.get(CLASSES.GitPlugin);
|
|
42
|
-
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(
|
|
42
|
+
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(CLASSES.WorkspaceUtil);
|
|
43
43
|
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
44
44
|
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
45
45
|
const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler);
|
|
@@ -31,7 +31,7 @@ import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTest
|
|
|
31
31
|
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
32
32
|
const ide: Ide = e2eContainer.get(CLASSES.Ide);
|
|
33
33
|
const loginPage: ICheLoginPage = e2eContainer.get<ICheLoginPage>(TYPES.CheLogin);
|
|
34
|
-
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(
|
|
34
|
+
const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(CLASSES.WorkspaceUtil);
|
|
35
35
|
const openshiftPlugin: OpenshiftPlugin = e2eContainer.get(CLASSES.OpenshiftPlugin);
|
|
36
36
|
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
37
37
|
const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer);
|
|
@@ -36,7 +36,7 @@ export class CodeExecutionTests {
|
|
|
36
36
|
@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
|
|
37
37
|
@inject(CLASSES.QuickOpenContainer) private readonly quickOpenContainer: QuickOpenContainer,
|
|
38
38
|
@inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil,
|
|
39
|
-
@inject(CLASSES.WorkspaceHandlingTests) private readonly workspaceHandlingTests:WorkspaceHandlingTests
|
|
39
|
+
@inject(CLASSES.WorkspaceHandlingTests) private readonly workspaceHandlingTests: WorkspaceHandlingTests
|
|
40
40
|
|
|
41
41
|
) {}
|
|
42
42
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IApiUrlResolver } from './IApiUrlResolver';
|
|
2
|
+
|
|
3
|
+
/*********************************************************************
|
|
4
|
+
* Copyright (c) 2019 Red Hat, Inc.
|
|
5
|
+
*
|
|
6
|
+
* This program and the accompanying materials are made
|
|
7
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
8
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
9
|
+
*
|
|
10
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
11
|
+
**********************************************************************/
|
|
12
|
+
import { injectable } from 'inversify';
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@injectable()
|
|
16
|
+
export class ApiUrlResolver implements IApiUrlResolver {
|
|
17
|
+
private dashboardApiUrl: string = 'dashboard/api/namespace';
|
|
18
|
+
|
|
19
|
+
public getWorkspaceApiUrl(namespace: string, workspaceName: string) {
|
|
20
|
+
return `${this.getWorkspacesApiUrl(namespace)}/${workspaceName}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public getWorkspacesApiUrl(namespace: string) {
|
|
24
|
+
return `${this.dashboardApiUrl}/${namespace}-che/devworkspaces`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*********************************************************************
|
|
2
|
+
* Copyright (c) 2019 Red Hat, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
|
|
11
|
+
export interface IApiUrlResolver {
|
|
12
|
+
getWorkspaceApiUrl(namespace: string, workspacename: string): string;
|
|
13
|
+
getWorkspacesApiUrl(namespace: string): string;
|
|
14
|
+
|
|
15
|
+
}
|
|
@@ -12,9 +12,9 @@ import { che } from '@eclipse-che/api';
|
|
|
12
12
|
import { TestConstants } from '../../TestConstants';
|
|
13
13
|
import { injectable, inject } from 'inversify';
|
|
14
14
|
import { DriverHelper } from '../DriverHelper';
|
|
15
|
+
import { ApiUrlResolver } from './ApiUrlResolver';
|
|
15
16
|
import 'reflect-metadata';
|
|
16
17
|
import { WorkspaceStatus } from './WorkspaceStatus';
|
|
17
|
-
import { ITestWorkspaceUtil } from './ITestWorkspaceUtil';
|
|
18
18
|
import { error } from 'selenium-webdriver';
|
|
19
19
|
import { CheApiRequestHandler } from '../requestHandlers/CheApiRequestHandler';
|
|
20
20
|
import { CLASSES } from '../../inversify.types';
|
|
@@ -22,24 +22,24 @@ import { Logger } from '../Logger';
|
|
|
22
22
|
import axios from 'axios';
|
|
23
23
|
|
|
24
24
|
@injectable()
|
|
25
|
-
export class TestWorkspaceUtil
|
|
25
|
+
export class TestWorkspaceUtil {
|
|
26
26
|
|
|
27
27
|
static readonly WORKSPACE_API_URL: string = 'dashboard/api/namespace';
|
|
28
28
|
readonly attempts: number = TestConstants.TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS;
|
|
29
29
|
readonly polling: number = TestConstants.TS_SELENIUM_WORKSPACE_STATUS_POLLING;
|
|
30
30
|
constructor(
|
|
31
31
|
@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
|
|
32
|
-
@inject(CLASSES.CheApiRequestHandler) private readonly processRequestHandler: CheApiRequestHandler
|
|
32
|
+
@inject(CLASSES.CheApiRequestHandler) private readonly processRequestHandler: CheApiRequestHandler,
|
|
33
|
+
@inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver
|
|
33
34
|
) { }
|
|
34
35
|
|
|
35
36
|
public async waitWorkspaceStatus(namespace: string, workspaceName: string, expectedWorkspaceStatus: WorkspaceStatus) {
|
|
36
37
|
Logger.debug('TestWorkspaceUtil.waitWorkspaceStatus');
|
|
37
38
|
|
|
38
|
-
const workspaceStatusApiUrl: string = `${TestWorkspaceUtil.WORKSPACE_API_URL}/${namespace}-che/devworkspaces/${workspaceName}`;
|
|
39
39
|
let workspaceStatus: string = '';
|
|
40
40
|
let expectedStatus: boolean = false;
|
|
41
41
|
for (let i = 0; i < this.attempts; i++) {
|
|
42
|
-
const response = await this.processRequestHandler.get(
|
|
42
|
+
const response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName));
|
|
43
43
|
|
|
44
44
|
if (response.status !== 200) {
|
|
45
45
|
throw new Error(`Can not get status of a workspace. Code: ${response.status} Data: ${response.data}`);
|
|
@@ -64,7 +64,7 @@ export class TestWorkspaceUtil implements ITestWorkspaceUtil {
|
|
|
64
64
|
public async stopWorkspaceByName(namespace: string, workspaceName: string) {
|
|
65
65
|
Logger.debug('TestWorkspaceUtil.stopWorkspaceByName');
|
|
66
66
|
|
|
67
|
-
const stopWorkspaceApiUrl: string =
|
|
67
|
+
const stopWorkspaceApiUrl: string = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
|
|
68
68
|
let stopWorkspaceResponse;
|
|
69
69
|
|
|
70
70
|
try {
|
|
@@ -83,9 +83,9 @@ export class TestWorkspaceUtil implements ITestWorkspaceUtil {
|
|
|
83
83
|
|
|
84
84
|
// delete a worksapce without stopping phase (similar with force deleting)
|
|
85
85
|
public async deleteWorkspaceByName(namespace: string, workspaceName: string) {
|
|
86
|
-
Logger.debug(
|
|
86
|
+
Logger.debug(`TestWorkspaceUtil.deleteWorkspaceByName ${workspaceName}` );
|
|
87
87
|
|
|
88
|
-
const deleteWorkspaceApiUrl: string =
|
|
88
|
+
const deleteWorkspaceApiUrl: string = this.apiUrlResolver.getWorkspaceApiUrl(namespace, workspaceName);
|
|
89
89
|
let deleteWorkspaceResponse;
|
|
90
90
|
let deleteWorkspaceStatus: boolean = false;
|
|
91
91
|
try {
|
|
@@ -95,16 +95,15 @@ export class TestWorkspaceUtil implements ITestWorkspaceUtil {
|
|
|
95
95
|
Logger.error(`The workspace :${workspaceName} not found`);
|
|
96
96
|
throw error;
|
|
97
97
|
}
|
|
98
|
-
Logger.error(`
|
|
98
|
+
Logger.error(`Delete workspace call failed. URL used: ${deleteWorkspaceStatus}`);
|
|
99
99
|
throw error;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
if (deleteWorkspaceResponse.status !== 204) {
|
|
103
|
-
throw new Error(`Can not
|
|
103
|
+
throw new Error(`Can not delete workspace. Code: ${deleteWorkspaceResponse.status} Data: ${deleteWorkspaceResponse.data}`);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
for (let i = 0; i < this.attempts; i++) {
|
|
107
|
-
|
|
108
107
|
try {
|
|
109
108
|
deleteWorkspaceResponse = await this.processRequestHandler.get(deleteWorkspaceApiUrl);
|
|
110
109
|
} catch (error) {
|
|
@@ -129,6 +128,39 @@ export class TestWorkspaceUtil implements ITestWorkspaceUtil {
|
|
|
129
128
|
await this.deleteWorkspaceByName(namespace, workspaceName);
|
|
130
129
|
}
|
|
131
130
|
|
|
131
|
+
// stop all run workspaces in the namespace
|
|
132
|
+
public async stopAllRunningWorkspaces(namespace: string) {
|
|
133
|
+
Logger.debug('TestWorkspaceUtil.stopAllRunProjects');
|
|
134
|
+
let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
|
|
135
|
+
for (let i = 0; i < response.data.items.length; i++) {
|
|
136
|
+
Logger.info('The project is being stopped: ' + response.data.items[i].metadata.name);
|
|
137
|
+
await this.stopWorkspaceByName(namespace, response.data.items[i].metadata.name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// stop all run workspaces, check statused and remove the workspaces
|
|
142
|
+
public async stopAndDeleteAllRunningWorkspaces(namespace: string) {
|
|
143
|
+
Logger.debug('TestWorkspaceUtil.stopAndDeleteAllRunProjects');
|
|
144
|
+
let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
|
|
145
|
+
await this.stopAllRunningWorkspaces(namespace);
|
|
146
|
+
for (let i = 0; i < response.data.items.length; i++) {
|
|
147
|
+
Logger.info('The project is being deleted: ' + response.data.items[i].metadata.name);
|
|
148
|
+
await this.deleteWorkspaceByName(namespace, response.data.items[i].metadata.name);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// stop all run workspaces without stopping and waiting for of 'Stopped' phase
|
|
153
|
+
// similar with 'force' deleting
|
|
154
|
+
public async deleteAllWorkspaces(namespace: string) {
|
|
155
|
+
Logger.debug('TestWorkspaceUtil.deleteAllRunProjects');
|
|
156
|
+
let response = await this.processRequestHandler.get(this.apiUrlResolver.getWorkspacesApiUrl(namespace));
|
|
157
|
+
|
|
158
|
+
for (let i = 0; i < response.data.items.length; i++) {
|
|
159
|
+
Logger.info('The project is being deleted .......: ' + response.data.items[i].metadata.name);
|
|
160
|
+
await this.deleteWorkspaceByName(namespace, response.data.items[i].metadata.name);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
132
164
|
/**
|
|
133
165
|
* @deprecated Method deprecated. Works with CHE server only
|
|
134
166
|
*/
|