@eclipse-che/che-e2e 7.64.0-dev-9dbc63a → 7.64.0-dev-01207b1
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/README.md +1 -0
- package/configs/sh-scripts/initDevfileTests.sh +1 -1
- package/constants/TestConstants.ts +12 -4
- package/constants/TimeoutConstants.ts +1 -1
- package/dist/constants/TestConstants.js +10 -4
- package/dist/constants/TestConstants.js.map +1 -1
- package/dist/constants/TimeoutConstants.js +1 -1
- package/dist/driver/ChromeDriver.js +3 -1
- package/dist/driver/ChromeDriver.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/specs/MochaHooks.js +1 -1
- package/dist/specs/MochaHooks.js.map +1 -1
- package/dist/specs/api/CloneGitRepoAPI.spec.js +60 -0
- package/dist/specs/api/CloneGitRepoAPI.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js +122 -0
- package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js.map +1 -0
- package/dist/specs/factory/Factory.spec.js +1 -2
- package/dist/specs/factory/Factory.spec.js.map +1 -1
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +1 -2
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +1 -2
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
- package/dist/tests-library/WorkspaceHandlingTests.js +1 -0
- package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
- package/dist/utils/CheReporter.js +1 -1
- package/dist/utils/CheReporter.js.map +1 -1
- package/dist/utils/DriverHelper.js.map +1 -1
- package/dist/utils/OpenshiftClientExecutor.js +98 -0
- package/dist/utils/OpenshiftClientExecutor.js.map +1 -0
- package/dist/utils/vsc/GitUtil.js +1 -1
- package/dist/utils/vsc/GitUtil.js.map +1 -1
- package/driver/ChromeDriver.ts +6 -4
- package/index.ts +1 -0
- package/package.json +5 -2
- package/specs/MochaHooks.ts +1 -1
- package/specs/api/CloneGitRepoAPI.spec.ts +71 -0
- package/specs/dashboard-samples/RecomendedExtentions.spec.ts +148 -0
- package/specs/factory/Factory.spec.ts +1 -2
- package/specs/factory/NoSetupRepoFactory.spec.ts +1 -2
- package/specs/factory/RefusedOAuthFactory.spec.ts +1 -2
- package/tests-library/WorkspaceHandlingTests.ts +1 -0
- package/utils/CheReporter.ts +2 -2
- package/utils/DriverHelper.ts +1 -1
- package/utils/OpenshiftClientExecutor.ts +117 -0
- package/utils/vsc/GitUtil.ts +1 -1
- package/dist/specs/devfiles/EmptyWorkspace.spec.js.map +0 -1
- package/dist/specs/devfiles/Quarkus.spec.js.map +0 -1
- /package/dist/specs/{devfiles → dashboard-samples}/EmptyWorkspace.spec.js +0 -0
- /package/dist/specs/{devfiles → dashboard-samples}/Quarkus.spec.js +0 -0
- /package/specs/{devfiles → dashboard-samples}/EmptyWorkspace.spec.ts +0 -0
- /package/specs/{devfiles → dashboard-samples}/Quarkus.spec.ts +0 -0
|
@@ -51,6 +51,7 @@ export class WorkspaceHandlingTests {
|
|
|
51
51
|
|
|
52
52
|
public createAndOpenWorkspace(stack: string): void {
|
|
53
53
|
test(`Create and open new workspace, stack:${stack}`, async () => {
|
|
54
|
+
await this.dashboard.clickWorkspacesButton();
|
|
54
55
|
await this.dashboard.waitPage();
|
|
55
56
|
Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
|
|
56
57
|
await this.apiUrlResolver.getWorkspacesApiUrl();
|
package/utils/CheReporter.ts
CHANGED
|
@@ -36,7 +36,7 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
36
36
|
constructor(runner: mocha.Runner, options: mocha.MochaOptions) {
|
|
37
37
|
super(runner, options);
|
|
38
38
|
|
|
39
|
-
runner.on('start', async () => {
|
|
39
|
+
runner.on('start', async (): Promise<void> => {
|
|
40
40
|
let launchInformation: string =
|
|
41
41
|
`################## Launch Information ##################
|
|
42
42
|
|
|
@@ -155,7 +155,7 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
155
155
|
screenshotStream.write(Buffer.from(screenshot, 'base64'));
|
|
156
156
|
screenshotStream.end();
|
|
157
157
|
|
|
158
|
-
// take
|
|
158
|
+
// take page source and write to file
|
|
159
159
|
const pageSource: string = await driverHelper.getDriver().getPageSource();
|
|
160
160
|
const pageSourceStream: WriteStream = fs.createWriteStream(pageSourceFileName);
|
|
161
161
|
pageSourceStream.write(Buffer.from(pageSource));
|
package/utils/DriverHelper.ts
CHANGED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { echo, exec, ShellString } from 'shelljs';
|
|
2
|
+
import { TestConstants } from '../constants/TestConstants';
|
|
3
|
+
import { Logger } from './Logger';
|
|
4
|
+
|
|
5
|
+
export class OpenshiftClientExecutor {
|
|
6
|
+
protected static container: string;
|
|
7
|
+
protected static pod: string | undefined;
|
|
8
|
+
protected workspaceName: string | undefined;
|
|
9
|
+
protected namespace: string;
|
|
10
|
+
|
|
11
|
+
constructor(_workspaceName?: string, _namespace?: string) {
|
|
12
|
+
this.workspaceName = _workspaceName;
|
|
13
|
+
this.namespace = this.setNamespace(_namespace);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
get getWorkspaceName(): string {
|
|
17
|
+
return <string>this.workspaceName;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get getNamespace(): string {
|
|
21
|
+
return this.namespace;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
loginToOcp(): void {
|
|
25
|
+
Logger.debug('OpenshiftClientExecutor.loginToOcp: Login to the \'OC\' client');
|
|
26
|
+
const url: string = this.getServerUrl();
|
|
27
|
+
Logger.debug(url, TestConstants.TS_SELENIUM_OCP_USERNAME);
|
|
28
|
+
exec(`sleep 5
|
|
29
|
+
oc login --server=${url} -u=${TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getContainerName(): string {
|
|
33
|
+
Logger.debug(`OpenshiftClientExecutor.getContainerName: Get container name.`);
|
|
34
|
+
const output: ShellString = this.execWithLog(`oc get ${(OpenshiftClientExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
|
|
35
|
+
echo('\n');
|
|
36
|
+
return output.stderr ? output.stderr : output.stdout;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getWorkspacePodName(): string {
|
|
40
|
+
Logger.debug('OpenshiftClientExecutor.getWorkspacePodName: Get workspace pod name.');
|
|
41
|
+
const output: ShellString = this.execWithLog(`oc get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
|
|
42
|
+
return output.stderr ? output.stderr : output.stdout.replace('\n', '');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
deleteDevWorkspace(): void {
|
|
46
|
+
Logger.debug(`OpenshiftClientExecutor.deleteWorkspace: Delete '${this.workspaceName}' workspace`);
|
|
47
|
+
this.execWithLog(`oc patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
|
|
48
|
+
this.execWithLog(`oc delete dw ${this.workspaceName} -n ${this.namespace} || true`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
applyAndWaitDevWorkspace(yamlConfiguration: string): ShellString {
|
|
52
|
+
this.apply(yamlConfiguration);
|
|
53
|
+
const output: ShellString = this.waitDevWorkspace();
|
|
54
|
+
OpenshiftClientExecutor.pod = this.getWorkspacePodName();
|
|
55
|
+
OpenshiftClientExecutor.container = this.getContainerName();
|
|
56
|
+
return output;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
executeCommand(commandToExecute: string): ShellString {
|
|
60
|
+
Logger.debug('OpenshiftClientExecutor.executeCommand');
|
|
61
|
+
return this.execWithLog(`oc exec -i ${OpenshiftClientExecutor.pod} -n ${this.namespace} -c ${OpenshiftClientExecutor.container} -- sh -c "${commandToExecute}"`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
apply(yamlConfiguration: string): void {
|
|
65
|
+
Logger.debug('OpenshiftClientExecutor.apply:');
|
|
66
|
+
this.execWithLog('cat <<EOF | oc apply -n ' + this.namespace + ' -f - \n' +
|
|
67
|
+
yamlConfiguration + '\n' +
|
|
68
|
+
'EOF');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
waitDevWorkspace(timeout: number = 360): ShellString {
|
|
72
|
+
Logger.debug('OpenshiftClientExecutor.wait: Wait till workspace ready.');
|
|
73
|
+
return this.execWithLog(`oc wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private setNamespace(_namespace: string | undefined): string {
|
|
77
|
+
return _namespace !== undefined ? _namespace : TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private getServerUrl(): string {
|
|
81
|
+
Logger.debug('OpenshiftClientExecutor.getServerUrl: Get server api url.');
|
|
82
|
+
return TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private execWithLog(command: string): ShellString {
|
|
86
|
+
echo(command);
|
|
87
|
+
return exec(command);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export namespace OpenshiftClientExecutor {
|
|
92
|
+
export class ContainerTerminal extends OpenshiftClientExecutor {
|
|
93
|
+
constructor(cluster: OpenshiftClientExecutor) {
|
|
94
|
+
super(cluster.getWorkspaceName, cluster.getNamespace);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
ls(path: string = ''): ShellString {
|
|
98
|
+
return this.executeCommand('ls ' + path);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
pwd(): ShellString {
|
|
102
|
+
return this.executeCommand('pwd');
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
cd(path: string): ShellString {
|
|
106
|
+
return this.executeCommand('cd ' + path);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
gitClone(repository: string): ShellString {
|
|
110
|
+
return this.executeCommand('git clone ' + repository);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
removeFolder(path: string): ShellString {
|
|
114
|
+
return this.executeCommand('rm -rf ' + path);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
package/utils/vsc/GitUtil.ts
CHANGED
|
@@ -19,7 +19,7 @@ export class GitUtil {
|
|
|
19
19
|
* @param url git https url (which using for "git clone")
|
|
20
20
|
* @return project name
|
|
21
21
|
*/
|
|
22
|
-
getProjectNameFromGitUrl(url: string): string {
|
|
22
|
+
static getProjectNameFromGitUrl(url: string): string {
|
|
23
23
|
return url.split(/[\/.]/).filter((e: string) => e !== '' && e !== 'git').reverse()[0];
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyWorkspace.spec.js","sourceRoot":"","sources":["../../../specs/devfiles/EmptyWorkspace.spec.ts"],"names":[],"mappings":";;AAAA;;;;;;;;wEAQwE;AACxE,qEAA8D;AAC9D,6DAA0E;AAC1E,mEAAwD;AACxD,uFAAoF;AACpF,+CAA4C;AAG5C,8CAAyD;AAEzD,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;AACxG,MAAM,mBAAmB,GAAwB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,mBAAmB,CAAC,CAAC;AAC/F,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;AACpE,MAAM,SAAS,GAAW,iBAAiB,CAAC;AAE5C,KAAK,CAAC,GAAG,SAAS,OAAO,EAAE,KAAK,IAAI,EAAE;IAClC,KAAK,CAAC,UAAU,SAAS,YAAY,EAAE,KAAK,IAAI,EAAE;QAC9C,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1B,sBAAsB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzD,sBAAsB,CAAC,mCAAmC,EAAE,CAAC;QAC7D,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,qCAAwB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAG,EAAE;YACvC,MAAM,mBAAmB,CAAC,sCAAsC,EAAE,CAAC;YAEnE,MAAM,SAAS,GAAc,IAAI,+BAAS,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAgB,SAAS,CAAC,cAAc,EAAE,CAAC;YAC5D,MAAM,mBAAmB,GAAkB,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;YAE/E,eAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjC,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE;gBACvC,eAAM,CAAC,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC/C;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACpD,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,sBAAsB,CAAC,sBAAsB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Quarkus.spec.js","sourceRoot":"","sources":["../../../specs/devfiles/Quarkus.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAExE,6DAA+D;AAC/D,8CAAyD;AAEzD,qEAA8D;AAC9D,mEAAwD;AACxD,uFAAoF;AAEpF,+CAA4C;AAE5C,MAAM,SAAS,GAAW,sBAAsB,CAAC;AACjD,MAAM,WAAW,GAAW,qBAAqB,CAAC;AAClD,MAAM,mBAAmB,GAAwB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,mBAAmB,CAAC,CAAC;AAC/F,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;AACxG,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;AAEpE,KAAK,CAAC,OAAO,SAAS,YAAY,EAAE,KAAK;IACrC,IAAI,cAA2B,CAAC;IAChC,KAAK,CAAC,yBAAyB,SAAS,SAAS,EAAE,KAAK;QACpD,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1B,sBAAsB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzD,sBAAsB,CAAC,mCAAmC,EAAE,CAAC;QAC7D,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,qCAAwB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,EAAE,KAAK;YAClC,MAAM,mBAAmB,CAAC,sCAAsC,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK;YACjD,cAAc,GAAG,MAAM,IAAI,iCAAW,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC9E,eAAM,CAAC,KAAK,CAAC,kDAAkD,WAAW,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,sCAAsC,EAAE,KAAK;YAC9C,MAAM,KAAK,GAAW,cAAc,CAAC;YACrC,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qCAAqC,EAAE,KAAK;YAC7C,MAAM,sBAAsB,CAAC,sBAAsB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|