@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.
Files changed (54) hide show
  1. package/README.md +1 -0
  2. package/configs/sh-scripts/initDevfileTests.sh +1 -1
  3. package/constants/TestConstants.ts +12 -4
  4. package/constants/TimeoutConstants.ts +1 -1
  5. package/dist/constants/TestConstants.js +10 -4
  6. package/dist/constants/TestConstants.js.map +1 -1
  7. package/dist/constants/TimeoutConstants.js +1 -1
  8. package/dist/driver/ChromeDriver.js +3 -1
  9. package/dist/driver/ChromeDriver.js.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/specs/MochaHooks.js +1 -1
  13. package/dist/specs/MochaHooks.js.map +1 -1
  14. package/dist/specs/api/CloneGitRepoAPI.spec.js +60 -0
  15. package/dist/specs/api/CloneGitRepoAPI.spec.js.map +1 -0
  16. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -0
  17. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -0
  18. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js +122 -0
  19. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js.map +1 -0
  20. package/dist/specs/factory/Factory.spec.js +1 -2
  21. package/dist/specs/factory/Factory.spec.js.map +1 -1
  22. package/dist/specs/factory/NoSetupRepoFactory.spec.js +1 -2
  23. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  24. package/dist/specs/factory/RefusedOAuthFactory.spec.js +1 -2
  25. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  26. package/dist/tests-library/WorkspaceHandlingTests.js +1 -0
  27. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  28. package/dist/utils/CheReporter.js +1 -1
  29. package/dist/utils/CheReporter.js.map +1 -1
  30. package/dist/utils/DriverHelper.js.map +1 -1
  31. package/dist/utils/OpenshiftClientExecutor.js +98 -0
  32. package/dist/utils/OpenshiftClientExecutor.js.map +1 -0
  33. package/dist/utils/vsc/GitUtil.js +1 -1
  34. package/dist/utils/vsc/GitUtil.js.map +1 -1
  35. package/driver/ChromeDriver.ts +6 -4
  36. package/index.ts +1 -0
  37. package/package.json +5 -2
  38. package/specs/MochaHooks.ts +1 -1
  39. package/specs/api/CloneGitRepoAPI.spec.ts +71 -0
  40. package/specs/dashboard-samples/RecomendedExtentions.spec.ts +148 -0
  41. package/specs/factory/Factory.spec.ts +1 -2
  42. package/specs/factory/NoSetupRepoFactory.spec.ts +1 -2
  43. package/specs/factory/RefusedOAuthFactory.spec.ts +1 -2
  44. package/tests-library/WorkspaceHandlingTests.ts +1 -0
  45. package/utils/CheReporter.ts +2 -2
  46. package/utils/DriverHelper.ts +1 -1
  47. package/utils/OpenshiftClientExecutor.ts +117 -0
  48. package/utils/vsc/GitUtil.ts +1 -1
  49. package/dist/specs/devfiles/EmptyWorkspace.spec.js.map +0 -1
  50. package/dist/specs/devfiles/Quarkus.spec.js.map +0 -1
  51. /package/dist/specs/{devfiles → dashboard-samples}/EmptyWorkspace.spec.js +0 -0
  52. /package/dist/specs/{devfiles → dashboard-samples}/Quarkus.spec.js +0 -0
  53. /package/specs/{devfiles → dashboard-samples}/EmptyWorkspace.spec.ts +0 -0
  54. /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();
@@ -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 pagesource and write to file
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));
@@ -22,7 +22,7 @@ export class DriverHelper {
22
22
  private readonly driver: ThenableWebDriver;
23
23
 
24
24
  constructor(@inject(TYPES.Driver) driver: IDriver) {
25
- this.driver = driver.get();
25
+ this.driver = driver.get() as ThenableWebDriver;
26
26
  }
27
27
 
28
28
  public getAction(): Actions {
@@ -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
+ }
@@ -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"}