@eclipse-che/che-e2e 7.76.0-next-6068ce8 → 7.76.0-next-9fb1a12

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 (118) hide show
  1. package/CODE_STYLE.md +1 -1
  2. package/configs/inversify.config.ts +1 -7
  3. package/configs/mocharc.ts +11 -5
  4. package/configs/reporters.config.js +51 -0
  5. package/configs/sh-scripts/runFunctionalTests.sh +104 -0
  6. package/constants/API_TEST_CONSTANTS.ts +5 -2
  7. package/constants/BASE_TEST_CONSTANTS.ts +37 -7
  8. package/constants/MOCHA_CONSTANTS.ts +12 -2
  9. package/constants/REPORTER_CONSTANTS.ts +98 -5
  10. package/constants/TIMEOUT_CONSTANTS.ts +10 -22
  11. package/dist/configs/inversify.config.js +0 -5
  12. package/dist/configs/inversify.config.js.map +1 -1
  13. package/dist/configs/mocharc.js +18 -13
  14. package/dist/configs/mocharc.js.map +1 -1
  15. package/dist/constants/API_TEST_CONSTANTS.js +3 -2
  16. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -1
  17. package/dist/constants/BASE_TEST_CONSTANTS.js +22 -0
  18. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -1
  19. package/dist/constants/MOCHA_CONSTANTS.js +8 -4
  20. package/dist/constants/MOCHA_CONSTANTS.js.map +1 -1
  21. package/dist/constants/REPORTER_CONSTANTS.js +70 -2
  22. package/dist/constants/REPORTER_CONSTANTS.js.map +1 -1
  23. package/dist/constants/TIMEOUT_CONSTANTS.js +0 -8
  24. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -1
  25. package/dist/specs/MochaHooks.js +14 -3
  26. package/dist/specs/MochaHooks.js.map +1 -1
  27. package/dist/specs/SmokeTest.spec.js +1 -1
  28. package/dist/specs/SmokeTest.spec.js.map +1 -1
  29. package/dist/specs/api/ContainerOverridesAPI.spec.js +2 -1
  30. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
  31. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +9 -7
  32. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
  33. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +2 -5
  34. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
  35. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +97 -0
  36. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +1 -0
  37. package/dist/specs/api/PodOverridesAPI.spec.js +1 -1
  38. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
  39. package/dist/specs/dashboard-samples/Documentation.spec.js +1 -1
  40. package/dist/specs/dashboard-samples/Documentation.spec.js.map +1 -1
  41. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +2 -1
  42. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
  43. package/dist/specs/dashboard-samples/Quarkus.spec.js +1 -1
  44. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
  45. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +2 -1
  46. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
  47. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +1 -1
  48. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
  49. package/dist/specs/factory/Factory.spec.js +1 -1
  50. package/dist/specs/factory/Factory.spec.js.map +1 -1
  51. package/dist/specs/factory/NoSetupRepoFactory.spec.js +1 -1
  52. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  53. package/dist/specs/factory/RefusedOAuthFactory.spec.js +1 -1
  54. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  55. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +1 -1
  56. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +1 -1
  57. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +3 -2
  58. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -1
  59. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +2 -1
  60. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -1
  61. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +6 -1
  62. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +1 -1
  63. package/dist/specs/web-terminal/WebTerminalTest.spec.js +2 -1
  64. package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +1 -1
  65. package/dist/suites/disconnected-ocp/APITest.suite.js +14 -0
  66. package/dist/suites/disconnected-ocp/APITest.suite.js.map +1 -0
  67. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  68. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  69. package/dist/suites/disconnected-ocp/UITest.suite.js +19 -0
  70. package/dist/suites/disconnected-ocp/UITest.suite.js.map +1 -0
  71. package/dist/suites/online-ocp/APITest.suite.js +15 -0
  72. package/dist/suites/online-ocp/APITest.suite.js.map +1 -0
  73. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  74. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  75. package/dist/suites/online-ocp/UITest.suite.js +22 -0
  76. package/dist/suites/online-ocp/UITest.suite.js.map +1 -0
  77. package/dist/tests-library/LoginTests.js +3 -1
  78. package/dist/tests-library/LoginTests.js.map +1 -1
  79. package/dist/utils/DevWorkspaceConfigurationHelper.js +44 -2
  80. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
  81. package/dist/utils/DevfilesRegistryHelper.js +22 -8
  82. package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
  83. package/dist/utils/KubernetesCommandLineToolsExecutor.js +15 -14
  84. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  85. package/package.json +11 -8
  86. package/specs/MochaHooks.ts +15 -3
  87. package/specs/SmokeTest.spec.ts +1 -1
  88. package/specs/api/ContainerOverridesAPI.spec.ts +2 -1
  89. package/specs/api/DevfileAcceptanceTestAPI.spec.ts +10 -8
  90. package/specs/api/EmptyWorkspaceAPI.spec.ts +2 -6
  91. package/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.ts +130 -0
  92. package/specs/api/PodOverridesAPI.spec.ts +1 -1
  93. package/specs/dashboard-samples/Documentation.spec.ts +1 -1
  94. package/specs/dashboard-samples/EmptyWorkspace.spec.ts +2 -1
  95. package/specs/dashboard-samples/Quarkus.spec.ts +1 -1
  96. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +2 -1
  97. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +1 -1
  98. package/specs/factory/Factory.spec.ts +1 -1
  99. package/specs/factory/NoSetupRepoFactory.spec.ts +1 -1
  100. package/specs/factory/RefusedOAuthFactory.spec.ts +1 -1
  101. package/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.ts +1 -1
  102. package/specs/miscellaneous/KubedockPodmanTest.spec.ts +63 -59
  103. package/specs/miscellaneous/PredefinedNamespace.spec.ts +2 -1
  104. package/specs/miscellaneous/WorkspaceWithParent.spec.ts +9 -2
  105. package/specs/web-terminal/WebTerminalTest.spec.ts +2 -1
  106. package/suites/disconnected-ocp/APITest.suite.ts +11 -0
  107. package/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.ts +10 -0
  108. package/suites/disconnected-ocp/UITest.suite.ts +16 -0
  109. package/suites/online-ocp/APITest.suite.ts +12 -0
  110. package/suites/online-ocp/DynamicallyGeneratingAPITest.suite.ts +10 -0
  111. package/suites/online-ocp/UITest.suite.ts +19 -0
  112. package/tests-library/LoginTests.ts +6 -1
  113. package/tsconfig.json +1 -1
  114. package/utils/DevWorkspaceConfigurationHelper.ts +36 -3
  115. package/utils/DevfilesRegistryHelper.ts +28 -9
  116. package/utils/IKubernetesCommandLineToolsExecutor.ts +1 -1
  117. package/utils/KubernetesCommandLineToolsExecutor.ts +14 -14
  118. package/configs/reporters-config.json +0 -6
package/CODE_STYLE.md CHANGED
@@ -117,7 +117,7 @@ Full set of rules can be found:
117
117
 
118
118
  2. Mocha framework
119
119
 
120
- - ✔ TDD framework (`suit()`, `test()`)
120
+ - ✔ TDD framework (`suite()`, `test()`)
121
121
  - ✔ Inject class instances, declare all test data inside test `suit()` function to avoid unnecessary code execution if test suit will not be run
122
122
 
123
123
  ```
@@ -9,7 +9,7 @@
9
9
  **********************************************************************/
10
10
 
11
11
  import 'reflect-metadata';
12
- import { Container, decorate, injectable, unmanaged } from 'inversify';
12
+ import { Container } from 'inversify';
13
13
  import { IDriver } from '../driver/IDriver';
14
14
  import { ChromeDriver } from '../driver/ChromeDriver';
15
15
  import { CLASSES, EXTERNAL_CLASSES, TYPES } from './inversify.types';
@@ -52,12 +52,6 @@ import { Main as Generator } from '@eclipse-che/che-devworkspace-generator/lib/m
52
52
  import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../utils/KubernetesCommandLineToolsExecutor';
53
53
  import { ShellExecutor } from '../utils/ShellExecutor';
54
54
 
55
- decorate(injectable(), Generator);
56
- decorate(injectable(), LocatorLoader);
57
- decorate(unmanaged(), LocatorLoader, 0);
58
- decorate(unmanaged(), LocatorLoader, 1);
59
- decorate(unmanaged(), LocatorLoader, 2);
60
-
61
55
  const e2eContainer: Container = new Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
62
56
 
63
57
  e2eContainer.bind<IDriver>(TYPES.Driver).to(ChromeDriver).inSingletonScope();
@@ -11,6 +11,7 @@
11
11
  'use strict';
12
12
 
13
13
  import { MOCHA_CONSTANTS } from '../constants/MOCHA_CONSTANTS';
14
+ import { BASE_TEST_CONSTANTS } from '../constants/BASE_TEST_CONSTANTS';
14
15
 
15
16
  /**
16
17
  * full available options list https://mochajs.org/api/mocha
@@ -18,16 +19,20 @@ import { MOCHA_CONSTANTS } from '../constants/MOCHA_CONSTANTS';
18
19
 
19
20
  module.exports = {
20
21
  timeout: MOCHA_CONSTANTS.MOCHA_DEFAULT_TIMEOUT,
22
+ slow: 60000,
21
23
  reporter: 'mocha-multi-reporters',
22
- reporterOptions: 'configFile=configs/reporters-config.json',
24
+ reporterOptions: 'configFile=configs/reporters.config.js',
23
25
  ui: 'tdd',
26
+ extension: ['js', 'cjs', 'mjs'],
24
27
  require: ['dist/specs/MochaHooks.js', 'ts-node/register'],
25
28
  bail: MOCHA_CONSTANTS.MOCHA_BAIL,
26
29
  'full-trace': true,
27
30
  spec:
28
- // variable MOCHA_DIRECTORY uses in command "test-all-devfiles" and sets up automatically.
29
- // you can set it up to run files from specific directory with export environmental variable.
30
- MOCHA_CONSTANTS.MOCHA_DIRECTORY
31
+ BASE_TEST_CONSTANTS.TEST_ENVIRONMENT !== ''
32
+ ? `dist/suites/${MOCHA_CONSTANTS.MOCHA_DIRECTORY}/${MOCHA_CONSTANTS.MOCHA_SUITE}.suite.js`
33
+ : // variable MOCHA_DIRECTORY uses in command "test-all-devfiles" and sets up automatically.
34
+ // you can set it up to run files from specific directory with export environmental variable.
35
+ MOCHA_CONSTANTS.MOCHA_DIRECTORY
31
36
  ? // to run one file (name without extension). uses in "test", "test-all-devfiles".
32
37
  MOCHA_CONSTANTS.MOCHA_USERSTORY
33
38
  ? `dist/specs/${MOCHA_CONSTANTS.MOCHA_DIRECTORY}/${MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`
@@ -35,5 +40,6 @@ module.exports = {
35
40
  : MOCHA_CONSTANTS.MOCHA_USERSTORY
36
41
  ? [`dist/specs/**/${MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`, `dist/specs/${MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`]
37
42
  : ['dist/specs/**/**.spec.js', 'dist/specs/**.spec.js'],
38
- retries: MOCHA_CONSTANTS.MOCHA_RETRIES
43
+ retries: MOCHA_CONSTANTS.MOCHA_RETRIES,
44
+ grep: MOCHA_CONSTANTS.MOCHA_GREP
39
45
  };
@@ -0,0 +1,51 @@
1
+ /** *******************************************************************
2
+ * copyright (c) 2023 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
+ const { REPORTER_CONSTANTS } = require('../constants/REPORTER_CONSTANTS');
11
+ const { BASE_TEST_CONSTANTS } = require('../constants/BASE_TEST_CONSTANTS');
12
+
13
+ module.exports = {
14
+ reporterEnabled: REPORTER_CONSTANTS.REPORTERS_ENABLED(),
15
+ allureMochaReporterOptions: {
16
+ resultsDir: '.allure-results'
17
+ },
18
+ reportportalAgentJsMochaReporterOptions: {
19
+ apiKey: REPORTER_CONSTANTS.RP_API_KEY,
20
+ endpoint: REPORTER_CONSTANTS.RP_ENDPOINT(),
21
+ project: REPORTER_CONSTANTS.RP_PROJECT(),
22
+ launch: `${REPORTER_CONSTANTS.RP_LAUNCH_NAME}`,
23
+ attributes: [
24
+ {
25
+ key: 'build',
26
+ value: `${BASE_TEST_CONSTANTS.TESTING_APPLICATION_VERSION}`
27
+ },
28
+ {
29
+ key: 'ocp version',
30
+ value: `${BASE_TEST_CONSTANTS.OCP_VERSION}`
31
+ },
32
+ {
33
+ key: 'ocp infra',
34
+ value: `${BASE_TEST_CONSTANTS.OCP_INFRA}`
35
+ },
36
+ {
37
+ key: 'application',
38
+ value: BASE_TEST_CONSTANTS.TESTING_APPLICATION_NAME()
39
+ },
40
+ {
41
+ key: 'url',
42
+ value: BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL
43
+ }
44
+ ],
45
+ rerun: REPORTER_CONSTANTS.RP_RERUN(),
46
+ rerunOf: REPORTER_CONSTANTS.RP_RERUN_UUID,
47
+ restClientConfig: {
48
+ timeout: 1200000
49
+ }
50
+ }
51
+ };
@@ -0,0 +1,104 @@
1
+ #!/bin/bash
2
+ # shellcheck source=/dev/null
3
+
4
+ validateParameters(){
5
+ # Validate required parameters
6
+ if [ -z "$OCP_VERSION" ] || [ -z "$OCP_INFRA" ] || [ -z "$TS_SELENIUM_BASE_URL" ]; then
7
+ echo "The OCP_INFRA, OCP_VERSION or TS_SELENIUM_BASE_URL is not set!";
8
+ echo "Please, set all required environment variable parameters"
9
+ exit 1
10
+ fi
11
+ }
12
+
13
+ ########################################
14
+ ############# Methods ##################
15
+ ########################################
16
+
17
+ launchAPITests() {
18
+ export MOCHA_SUITE="APITest"
19
+ echo "MOCHA_SUITE = ${MOCHA_SUITE}"
20
+ export RP_LAUNCH_NAME="API tests suite $TEST_ENVIRONMENT"
21
+ echo "suites/$MOCHA_DIRECTORY/$MOCHA_SUITE"
22
+ npm run driver-less-test
23
+ }
24
+
25
+ launchDynamicallyGeneratingAPITests() {
26
+ export MOCHA_SUITE="DynamicallyGeneratingAPITest"
27
+ export RP_LAUNCH_NAME="Application inbuilt DevWorkspaces API tests suite $TEST_ENVIRONMENT"
28
+ echo "MOCHA_SUITE = ${MOCHA_SUITE}"
29
+ echo "suites/$MOCHA_DIRECTORY/$MOCHA_SUITE"
30
+ npm run delayed-test
31
+ }
32
+
33
+ launchUITests() {
34
+ export MOCHA_SUITE="UITest"
35
+ export RP_LAUNCH_NAME="UI tests suite $TEST_ENVIRONMENT"
36
+ echo "MOCHA_SUITE = ${MOCHA_SUITE}"
37
+ echo "suites/$MOCHA_DIRECTORY/$MOCHA_SUITE"
38
+ npm run test
39
+ }
40
+
41
+ launchAllTests() {
42
+ validateParameters
43
+ initTestValues
44
+ echo ""
45
+ echo "Launching all tests for $TEST_ENVIRONMENT"
46
+ echo ""
47
+ launchDynamicallyGeneratingAPITests
48
+ launchAPITests
49
+ launchUITests
50
+ }
51
+
52
+ initTestValues() {
53
+ if [[ "$TS_SELENIUM_BASE_URL" =~ "airgap" || (-n "$IS_CLUSTER_DISCONNECTED" && "$IS_CLUSTER_DISCONNECTED" == "true") ]]
54
+ then
55
+ echo "Disconnected environment"
56
+ export MOCHA_DIRECTORY="disconnected-ocp"
57
+ else
58
+ echo "Online environment"
59
+ export MOCHA_DIRECTORY="online-ocp"
60
+ fi
61
+
62
+ export TEST_ENVIRONMENT="$OCP_INFRA $MOCHA_DIRECTORY $OCP_VERSION"
63
+ export DELETE_WORKSPACE_ON_FAILED_TEST=${DELETE_WORKSPACE_ON_FAILED_TEST:-'false'}
64
+ export DELETE_SCREENCAST_IF_TEST_PASS=${DELETE_SCREENCAST_IF_TEST_PASS:-'true'}
65
+ export NODE_TLS_REJECT_UNAUTHORIZED=${NODE_TLS_REJECT_UNAUTHORIZED:-'0'}
66
+ export TS_OCP_LOGIN_PAGE_PROVIDER_TITLE=${TS_OCP_LOGIN_PAGE_PROVIDER_TITLE:-'htpasswd'}
67
+ export TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS=${TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS:-'1000'}
68
+ export TS_SELENIUM_EDITOR=${TS_SELENIUM_EDITOR:-'che-code'}
69
+ export TS_SELENIUM_EXECUTION_SCREENCAST=${TS_SELENIUM_EXECUTION_SCREENCAST:-'false'}
70
+ export TS_SELENIUM_HEADLESS=${TS_SELENIUM_HEADLESS:-'false'}
71
+ export TS_SELENIUM_LAUNCH_FULLSCREEN=${TS_SELENIUM_LAUNCH_FULLSCREEN:-'true'}
72
+ export TS_SELENIUM_LOG_LEVEL=${TS_SELENIUM_LOG_LEVEL:-'TRACE'}
73
+ export TS_SELENIUM_OCP_PASSWORD=${TS_SELENIUM_OCP_PASSWORD:-''}
74
+ export TS_SELENIUM_OCP_USERNAME=${TS_SELENIUM_OCP_USERNAME:-'admin'}
75
+ export TS_SELENIUM_VALUE_OPENSHIFT_OAUTH=${TS_SELENIUM_VALUE_OPENSHIFT_OAUTH:-'true'}
76
+ export TS_SELENIUM_REPORT_FOLDER=${TS_SELENIUM_REPORT_FOLDER:-'./report'}
77
+ export MOCHA_BAIL=${MOCHA_BAIL:-'false'}
78
+ export MOCHA_RETRIES=${MOCHA_RETRIES:-'1'}
79
+
80
+ echo "TS_SELENIUM_BASE_URL=${TS_SELENIUM_BASE_URL}"
81
+ echo "TEST_ENVIRONMENT=${TEST_ENVIRONMENT}"
82
+ echo "DELETE_WORKSPACE_ON_FAILED_TEST=${DELETE_WORKSPACE_ON_FAILED_TEST}"
83
+ echo "DELETE_SCREENCAST_IF_TEST_PASS=${DELETE_SCREENCAST_IF_TEST_PASS}"
84
+ echo "NODE_TLS_REJECT_UNAUTHORIZED=${NODE_TLS_REJECT_UNAUTHORIZED}"
85
+ echo "TS_OCP_LOGIN_PAGE_PROVIDER_TITLE=${TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}"
86
+ echo "TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS=${TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS}"
87
+ echo "TS_SELENIUM_EDITOR=${TS_SELENIUM_EDITOR}"
88
+ echo "TS_SELENIUM_EXECUTION_SCREENCAST=${TS_SELENIUM_EXECUTION_SCREENCAST}"
89
+ echo "TS_SELENIUM_HEADLESS=${TS_SELENIUM_HEADLESS}"
90
+ echo "TS_SELENIUM_LAUNCH_FULLSCREEN=${TS_SELENIUM_LAUNCH_FULLSCREEN}"
91
+ echo "TS_SELENIUM_LOG_LEVEL=${TS_SELENIUM_LOG_LEVEL}"
92
+ echo "TS_SELENIUM_OCP_USERNAME=${TS_SELENIUM_OCP_USERNAME}"
93
+ echo "TS_SELENIUM_VALUE_OPENSHIFT_OAUTH=${TS_SELENIUM_VALUE_OPENSHIFT_OAUTH}"
94
+ echo "TS_SELENIUM_REPORT_FOLDER=${TS_SELENIUM_REPORT_FOLDER}"
95
+ echo "MOCHA_BAIL=${MOCHA_BAIL}"
96
+ echo "MOCHA_RETRIES=${MOCHA_RETRIES}"
97
+ }
98
+
99
+ ########################################
100
+ ############# Launching ################
101
+ ########################################
102
+
103
+ launchAllTests
104
+
@@ -23,6 +23,7 @@ export const SUPPORTED_DEVFILE_REGISTRIES: {
23
23
  GIT_HUB_CHE_DEVFILE_REGISTRY_URL: 'https://api.github.com/repos/eclipse-che/che-devfile-registry/contents/devfiles/'
24
24
  };
25
25
  export const API_TEST_CONSTANTS: {
26
+ TS_API_TEST_DEV_WORKSPACE_LIST: string | undefined;
26
27
  TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL: string;
27
28
  TS_API_TEST_PLUGIN_REGISTRY_URL: string | undefined;
28
29
  TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI: string | undefined;
@@ -62,6 +63,8 @@ export const API_TEST_CONSTANTS: {
62
63
  * to run all devfile from registry. used in DevfileAcceptanceTestAPI.suite.ts
63
64
  */
64
65
  TS_API_ACCEPTANCE_TEST_REGISTRY_URL(): string {
65
- return process.env.TS_API_ACCEPTANCE_TEST_REGISTRY_URL || SUPPORTED_DEVFILE_REGISTRIES.INBUILT_APPLICATION_DEVFILE_REGISTRY_URL();
66
- }
66
+ return process.env.TS_API_ACCEPTANCE_TEST_REGISTRY_URL || '';
67
+ },
68
+
69
+ TS_API_TEST_DEV_WORKSPACE_LIST: process.env.TS_API_TEST_DEV_WORKSPACE_LIST || undefined
67
70
  };
@@ -13,26 +13,56 @@ export enum Platform {
13
13
  }
14
14
 
15
15
  export const BASE_TEST_CONSTANTS: {
16
+ OCP_INFRA: string;
17
+ DELETE_WORKSPACE_ON_FAILED_TEST: boolean;
18
+ IS_CLUSTER_DISCONNECTED: () => boolean;
16
19
  IS_PRODUCT_DOCUMENTATION_RELEASED: any;
20
+ OCP_VERSION: string;
17
21
  TESTING_APPLICATION_VERSION: string;
22
+ TEST_ENVIRONMENT: string;
18
23
  TS_DEBUG_MODE: boolean;
24
+ TS_LOAD_TESTS: string;
19
25
  TS_PLATFORM: string;
20
- TS_SELENIUM_RESPONSE_INTERCEPTOR: boolean;
21
26
  TS_SELENIUM_BASE_URL: string;
22
- DELETE_WORKSPACE_ON_FAILED_TEST: boolean;
23
- TS_SELENIUM_EDITOR: string;
24
- TS_LOAD_TESTS: string;
25
- TS_SELENIUM_REQUEST_INTERCEPTOR: boolean;
26
- TS_SELENIUM_PROJECT_ROOT_FILE_NAME: string;
27
27
  TS_SELENIUM_DASHBOARD_SAMPLE_NAME: string;
28
+ TS_SELENIUM_EDITOR: string;
28
29
  TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: string;
29
- IS_CLUSTER_DISCONNECTED: () => boolean;
30
+ TS_SELENIUM_PROJECT_ROOT_FILE_NAME: string;
31
+ TS_SELENIUM_REQUEST_INTERCEPTOR: boolean;
32
+ TS_SELENIUM_RESPONSE_INTERCEPTOR: boolean;
33
+ TESTING_APPLICATION_NAME: () => string;
30
34
  } = {
31
35
  /**
32
36
  * base URL of the application which should be checked
33
37
  */
34
38
  TS_SELENIUM_BASE_URL: !process.env.TS_SELENIUM_BASE_URL ? 'http://sample-url' : process.env.TS_SELENIUM_BASE_URL.replace(/\/$/, ''),
35
39
 
40
+ /**
41
+ * ocp infra type, possible values "PSI", "AWS", "IBM Z", "IBM Power"
42
+ */
43
+ OCP_INFRA: process.env.OCP_INFRA || '',
44
+
45
+ /**
46
+ * openShift version
47
+ */
48
+ OCP_VERSION: process.env.OCP_VERSION || '',
49
+
50
+ /**
51
+ * test environment (used as prefix in suite name)
52
+ */
53
+ TEST_ENVIRONMENT: process.env.TEST_ENVIRONMENT || '',
54
+
55
+ /**
56
+ * application name (DevSpaces or Che)
57
+ */
58
+ TESTING_APPLICATION_NAME: (): string => {
59
+ return BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL.includes('devspaces')
60
+ ? 'devspaces'
61
+ : BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL.includes('che')
62
+ ? 'che'
63
+ : 'default';
64
+ },
65
+
36
66
  /**
37
67
  * testing application version
38
68
  */
@@ -7,13 +7,17 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
+ import { BASE_TEST_CONSTANTS } from './BASE_TEST_CONSTANTS';
10
11
 
11
12
  export const MOCHA_CONSTANTS: {
13
+ MOCHA_SUITE: string | undefined;
14
+ MOCHA_DELAYED_SUITE: boolean;
12
15
  MOCHA_DEFAULT_TIMEOUT: string | number;
13
16
  MOCHA_DIRECTORY: string | undefined;
14
17
  MOCHA_USERSTORY: undefined | string;
15
18
  MOCHA_RETRIES: string | number;
16
19
  MOCHA_BAIL: boolean;
20
+ MOCHA_GREP: string | undefined;
17
21
  } = {
18
22
  MOCHA_DIRECTORY: process.env.MOCHA_DIRECTORY || undefined,
19
23
 
@@ -21,7 +25,13 @@ export const MOCHA_CONSTANTS: {
21
25
 
22
26
  MOCHA_BAIL: process.env.MOCHA_BAIL !== 'false',
23
27
 
24
- MOCHA_DEFAULT_TIMEOUT: process.env.MOCHA_DEFAULT_TIMEOUT || 1200000,
28
+ MOCHA_DELAYED_SUITE: process.env.MOCHA_DELAYED_SUITE === 'true',
25
29
 
26
- MOCHA_RETRIES: process.env.MOCHA_RETRIES || 3
30
+ MOCHA_DEFAULT_TIMEOUT: Number(process.env.MOCHA_DEFAULT_TIMEOUT) || 420000,
31
+
32
+ MOCHA_RETRIES: process.env.MOCHA_RETRIES || BASE_TEST_CONSTANTS.TEST_ENVIRONMENT === '' ? 0 : 2,
33
+
34
+ MOCHA_SUITE: process.env.MOCHA_SUITE || undefined,
35
+
36
+ MOCHA_GREP: process.env.MOCHA_GREP || undefined
27
37
  };
@@ -7,14 +7,29 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
+ import { BASE_TEST_CONSTANTS } from './BASE_TEST_CONSTANTS';
11
+ import { MOCHA_CONSTANTS } from './MOCHA_CONSTANTS';
12
+
10
13
  export const REPORTER_CONSTANTS: {
14
+ DELETE_SCREENCAST_IF_TEST_PASS: boolean;
15
+ RP_ENDPOINT(): string;
16
+ RP_IS_LOCAL_SERVER: boolean;
17
+ REPORTERS_ENABLED(): string;
18
+ RP_API_KEY: string;
19
+ RP_PROJECT(): string;
20
+ RP_RERUN(): boolean;
21
+ RP_RERUN_UUID: string | undefined;
22
+ RP_LAUNCH_NAME: string;
23
+ RP_USER: string;
24
+ RP_USE_PERSONAL: boolean;
25
+ SAVE_ALLURE_REPORT_DATA: boolean;
26
+ SAVE_RP_REPORT_DATA: boolean;
11
27
  TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS: number;
12
- TS_SELENIUM_REPORT_FOLDER: string;
13
28
  TS_SELENIUM_EXECUTION_SCREENCAST: boolean;
14
- TS_SELENIUM_PRINT_TIMEOUT_VARIABLES: string | boolean;
15
29
  TS_SELENIUM_LOAD_TEST_REPORT_FOLDER: string;
16
30
  TS_SELENIUM_LOG_LEVEL: string;
17
- DELETE_SCREENCAST_IF_TEST_PASS: boolean;
31
+ TS_SELENIUM_PRINT_TIMEOUT_VARIABLES: string | boolean;
32
+ TS_SELENIUM_REPORT_FOLDER: string;
18
33
  } = {
19
34
  /**
20
35
  * path to folder with load tests execution report.
@@ -44,10 +59,88 @@ export const REPORTER_CONSTANTS: {
44
59
  /**
45
60
  * log level settings, possible variants: 'INFO' (by default), 'DEBUG', 'TRACE'.
46
61
  */
47
- TS_SELENIUM_LOG_LEVEL: process.env.TS_SELENIUM_LOG_LEVEL || 'INFO',
62
+ TS_SELENIUM_LOG_LEVEL: process.env.TS_SELENIUM_LOG_LEVEL || 'TRACE',
48
63
 
49
64
  /**
50
65
  * print all timeout variables when tests launch, default to false
51
66
  */
52
- TS_SELENIUM_PRINT_TIMEOUT_VARIABLES: process.env.TS_SELENIUM_PRINT_TIMEOUT_VARIABLES || false
67
+ TS_SELENIUM_PRINT_TIMEOUT_VARIABLES: process.env.TS_SELENIUM_PRINT_TIMEOUT_VARIABLES === 'true',
68
+
69
+ /**
70
+ * use local Allure reporter, default to false
71
+ */
72
+ SAVE_ALLURE_REPORT_DATA: process.env.SAVE_ALLURE_REPORT_DATA === 'true',
73
+
74
+ /**
75
+ * use ReportPortal reporter, default to false
76
+ */
77
+ SAVE_RP_REPORT_DATA: process.env.SAVE_RP_REPORT_DATA === 'true',
78
+
79
+ /**
80
+ * list of enabler reporters
81
+ */
82
+ REPORTERS_ENABLED: (): string => {
83
+ let reporters: string = 'dist/utils/CheReporter.js';
84
+ if (REPORTER_CONSTANTS.SAVE_ALLURE_REPORT_DATA) {
85
+ reporters += ',allure-mocha';
86
+ }
87
+ if (REPORTER_CONSTANTS.SAVE_RP_REPORT_DATA) {
88
+ reporters += ',@reportportal/agent-js-mocha';
89
+ }
90
+ return reporters;
91
+ },
92
+
93
+ /**
94
+ * reportPortal app key or user token
95
+ */
96
+ RP_API_KEY: process.env.RP_API_KEY || '',
97
+
98
+ /**
99
+ * user name on ReportPortal
100
+ */
101
+ RP_USER: process.env.RP_USER || process.env.USER || process.env.BUILD_USER_ID || '',
102
+
103
+ /**
104
+ * launch name to save report
105
+ */
106
+ RP_LAUNCH_NAME: process.env.RP_LAUNCH_NAME || `Test run ${MOCHA_CONSTANTS.MOCHA_USERSTORY}`,
107
+
108
+ /**
109
+ * launch name to save report
110
+ */
111
+ RP_RERUN_UUID: process.env.RP_RERUN_UUID || undefined,
112
+
113
+ /**
114
+ * is launch rerun
115
+ */
116
+ RP_RERUN: (): boolean => !!REPORTER_CONSTANTS.RP_RERUN_UUID,
117
+
118
+ /**
119
+ * is local or online server to use
120
+ */
121
+ RP_IS_LOCAL_SERVER: process.env.RP_IS_LOCAL_SERVER !== 'false',
122
+
123
+ /**
124
+ * url with endpoints where ReportPortal is
125
+ */
126
+ RP_ENDPOINT: (): string => {
127
+ return process.env.RP_ENDPOINT || REPORTER_CONSTANTS.RP_IS_LOCAL_SERVER
128
+ ? 'http://localhost:8080/api/v1'
129
+ : 'https://reportportal-crw.apps.ocp-c1.prod.psi.redhat.com/api/v1';
130
+ },
131
+
132
+ /**
133
+ * use personal project to save launch, if false launch will be send to devspaces or che project, true by default
134
+ */
135
+ RP_USE_PERSONAL: process.env.RP_USE_PERSONAL !== 'false',
136
+
137
+ /**
138
+ * project name to save launch
139
+ */
140
+ RP_PROJECT: (): string => {
141
+ const project: string = REPORTER_CONSTANTS.RP_USE_PERSONAL
142
+ ? `${REPORTER_CONSTANTS.RP_USER}_personal`
143
+ : BASE_TEST_CONSTANTS.TESTING_APPLICATION_NAME();
144
+ return process.env.RP_PROJECT || project;
145
+ }
53
146
  };
@@ -8,25 +8,23 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
  export const TIMEOUT_CONSTANTS: {
11
- TS_FIND_EXTENSION_TEST_TIMEOUT: number;
12
- TS_SELENIUM_WORKSPACE_STATUS_POLLING: number;
11
+ TS_CLICK_DASHBOARD_ITEM_TIMEOUT: number;
13
12
  TS_COMMON_DASHBOARD_WAIT_TIMEOUT: number;
14
- TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT: number;
15
- TS_DIALOG_WINDOW_DEFAULT_TIMEOUT: number;
13
+ TS_COMMON_PLUGIN_TEST_TIMEOUT: number;
16
14
  TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT: number;
15
+ TS_DIALOG_WINDOW_DEFAULT_TIMEOUT: number;
16
+ TS_EDITOR_TAB_INTERACTION_TIMEOUT: number;
17
+ TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT: number;
18
+ TS_FIND_EXTENSION_TEST_TIMEOUT: number;
19
+ TS_IDE_LOAD_TIMEOUT: number;
17
20
  TS_SELENIUM_CLICK_ON_VISIBLE_ITEM: number;
18
21
  TS_SELENIUM_DEFAULT_ATTEMPTS: number;
19
- TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS: number;
20
- TS_SELENIUM_WAIT_FOR_URL: number;
21
22
  TS_SELENIUM_DEFAULT_POLLING: number;
22
- TS_IDE_LOAD_TIMEOUT: number;
23
+ TS_SELENIUM_LOAD_PAGE_TIMEOUT: number;
24
+ TS_SELENIUM_START_WORKSPACE_TIMEOUT: number;
25
+ TS_SELENIUM_WAIT_FOR_URL: number;
23
26
  TS_WAIT_LOADER_ABSENCE_TIMEOUT: number;
24
27
  TS_WAIT_LOADER_PRESENCE_TIMEOUT: number;
25
- TS_SELENIUM_START_WORKSPACE_TIMEOUT: number;
26
- TS_SELENIUM_LOAD_PAGE_TIMEOUT: number;
27
- TS_CLICK_DASHBOARD_ITEM_TIMEOUT: number;
28
- TS_COMMON_PLUGIN_TEST_TIMEOUT: number;
29
- TS_EDITOR_TAB_INTERACTION_TIMEOUT: number;
30
28
  } = {
31
29
  /**
32
30
  * default amount of tries, "5" by default.
@@ -45,16 +43,6 @@ export const TIMEOUT_CONSTANTS: {
45
43
  */
46
44
  TS_SELENIUM_WAIT_FOR_URL: Number(process.env.TS_SELENIUM_WAIT_FOR_URL) || 10_000,
47
45
 
48
- /**
49
- * amount of tries for checking workspace status.
50
- */
51
- TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS: Number(process.env.TS_SELENIUM_WORKSPACE_STATUS_ATTEMPTS) || 90,
52
-
53
- /**
54
- * delay in milliseconds between checking workspace status tries.
55
- */
56
- TS_SELENIUM_WORKSPACE_STATUS_POLLING: Number(process.env.TS_SELENIUM_WORKSPACE_STATUS_POLLING) || 10000,
57
-
58
46
  /**
59
47
  * wait between workspace started and IDE ready to be used, "20 000" by default.
60
48
  */
@@ -48,11 +48,6 @@ const DevfilesRegistryHelper_1 = require("../utils/DevfilesRegistryHelper");
48
48
  const main_1 = require("@eclipse-che/che-devworkspace-generator/lib/main");
49
49
  const KubernetesCommandLineToolsExecutor_1 = require("../utils/KubernetesCommandLineToolsExecutor");
50
50
  const ShellExecutor_1 = require("../utils/ShellExecutor");
51
- (0, inversify_1.decorate)((0, inversify_1.injectable)(), main_1.Main);
52
- (0, inversify_1.decorate)((0, inversify_1.injectable)(), loader_1.LocatorLoader);
53
- (0, inversify_1.decorate)((0, inversify_1.unmanaged)(), loader_1.LocatorLoader, 0);
54
- (0, inversify_1.decorate)((0, inversify_1.unmanaged)(), loader_1.LocatorLoader, 1);
55
- (0, inversify_1.decorate)((0, inversify_1.unmanaged)(), loader_1.LocatorLoader, 2);
56
51
  const e2eContainer = new inversify_1.Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
57
52
  exports.e2eContainer = e2eContainer;
58
53
  e2eContainer.bind(inversify_types_1.TYPES.Driver).to(ChromeDriver_1.ChromeDriver).inSingletonScope();
@@ -1 +1 @@
1
- {"version":3,"file":"inversify.config.js","sourceRoot":"","sources":["../../configs/inversify.config.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,4BAA0B;AAC1B,yCAAuE;AAEvE,yDAAsD;AACtD,uDAAqE;AACrE,4EAAyE;AAEzE,sFAAmF;AAEnF,0GAAuG;AACvG,wDAAqD;AACrD,kEAA+D;AAC/D,oEAAiE;AACjE,kGAA+F;AAC/F,0DAAuD;AACvD,8EAA2E;AAE3E,qIAAkI;AAClI,yFAAsF;AACtF,8EAA2E;AAC3E,8DAA2D;AAC3D,oFAAiF;AACjF,sEAAmE;AAEnE,8EAA2E;AAC3E,4DAAyD;AACzD,oFAAiF;AACjF,0FAAuF;AACvF,sEAAmE;AACnE,wFAAqF;AACrF,oFAAiF;AACjF,oDAAiD;AACjD,6FAA0F;AAC1F,+EAA4E;AAC5E,kEAA+D;AAC/D,0EAAiF;AACjF,kFAA+E;AAC/E,oEAAwE;AACxE,sEAAmE;AACnE,4EAAyE;AACzE,2EAAqF;AACrF,oGAAoH;AACpH,0DAAuD;AAEvD,IAAA,oBAAQ,EAAC,IAAA,sBAAU,GAAE,EAAE,WAAS,CAAC,CAAC;AAClC,IAAA,oBAAQ,EAAC,IAAA,sBAAU,GAAE,EAAE,sBAAa,CAAC,CAAC;AACtC,IAAA,oBAAQ,EAAC,IAAA,qBAAS,GAAE,EAAE,sBAAa,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,oBAAQ,EAAC,IAAA,qBAAS,GAAE,EAAE,sBAAa,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,oBAAQ,EAAC,IAAA,qBAAS,GAAE,EAAE,sBAAa,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM,YAAY,GAAc,IAAI,qBAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;AA8C/F,oCAAY;AA5CrB,YAAY,CAAC,IAAI,CAAU,uBAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAqB,uBAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,qCAAiB,CAAC,CAAC;AACjF,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,mCAAgB,CAAC,CAAC;AACtE,YAAY,CAAC,IAAI,CAA8B,uBAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,+EAAsC,CAAC,CAAC;AAC7H,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAY,yBAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAS,CAAC,CAAC;AAC9D,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAmB,yBAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,mCAAgB,CAAC,CAAC;AACnF,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,6BAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAY,yBAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAS,CAAC,CAAC;AAC9D,YAAY,CAAC,IAAI,CAAc,yBAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,yBAAW,CAAC,CAAC;AACpE,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAqB,yBAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,uCAAkB,CAAC,CAAC;AACzF,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAsB,yBAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,yCAAmB,CAAC,CAAC;AAC5F,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAiB,yBAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,+BAAc,CAAC,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAyB,yBAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,+CAAsB,CAAC,CAAC;AACrG,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAyB,yBAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,+CAAsB,CAAC,CAAC;AACrG,YAAY,CAAC,IAAI,CAAqC,yBAAO,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,uEAAkC,CAAC,CAAC;AACzI,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,6BAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAoB,yBAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,sDAAiB,CAAC,CAAC;AAEtF,YAAY,CAAC,IAAI,CAAY,kCAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,WAAS,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAgB,kCAAgB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC;AAEnF,IAAI,yCAAmB,CAAC,WAAW,KAAK,8BAAQ,CAAC,SAAS,EAAE;IAC3D,IAAI,iCAAe,CAAC,iCAAiC,EAAE;QACtD,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,uDAA0B,CAAC,CAAC;KAChF;SAAM;QACN,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,uCAAkB,CAAC,CAAC;KACxE;CACD;KAAM;IACN,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,yCAAmB,CAAC,CAAC;CACzE"}
1
+ {"version":3,"file":"inversify.config.js","sourceRoot":"","sources":["../../configs/inversify.config.ts"],"names":[],"mappings":"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"}
@@ -10,28 +10,33 @@
10
10
  'use strict';
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const MOCHA_CONSTANTS_1 = require("../constants/MOCHA_CONSTANTS");
13
+ const BASE_TEST_CONSTANTS_1 = require("../constants/BASE_TEST_CONSTANTS");
13
14
  /**
14
15
  * full available options list https://mochajs.org/api/mocha
15
16
  */
16
17
  module.exports = {
17
18
  timeout: MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DEFAULT_TIMEOUT,
19
+ slow: 60000,
18
20
  reporter: 'mocha-multi-reporters',
19
- reporterOptions: 'configFile=configs/reporters-config.json',
21
+ reporterOptions: 'configFile=configs/reporters.config.js',
20
22
  ui: 'tdd',
23
+ extension: ['js', 'cjs', 'mjs'],
21
24
  require: ['dist/specs/MochaHooks.js', 'ts-node/register'],
22
25
  bail: MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_BAIL,
23
26
  'full-trace': true,
24
- spec:
25
- // variable MOCHA_DIRECTORY uses in command "test-all-devfiles" and sets up automatically.
26
- // you can set it up to run files from specific directory with export environmental variable.
27
- MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY
28
- ? // to run one file (name without extension). uses in "test", "test-all-devfiles".
29
- MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY
30
- ? `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY}/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`
31
- : `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY}/**.spec.js`
32
- : MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY
33
- ? [`dist/specs/**/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`, `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`]
34
- : ['dist/specs/**/**.spec.js', 'dist/specs/**.spec.js'],
35
- retries: MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_RETRIES
27
+ spec: BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT !== ''
28
+ ? `dist/suites/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY}/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_SUITE}.suite.js`
29
+ : // variable MOCHA_DIRECTORY uses in command "test-all-devfiles" and sets up automatically.
30
+ // you can set it up to run files from specific directory with export environmental variable.
31
+ MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY
32
+ ? // to run one file (name without extension). uses in "test", "test-all-devfiles".
33
+ MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY
34
+ ? `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY}/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`
35
+ : `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DIRECTORY}/**.spec.js`
36
+ : MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY
37
+ ? [`dist/specs/**/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`, `dist/specs/${MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_USERSTORY}.spec.js`]
38
+ : ['dist/specs/**/**.spec.js', 'dist/specs/**.spec.js'],
39
+ retries: MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_RETRIES,
40
+ grep: MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_GREP
36
41
  };
37
42
  //# sourceMappingURL=mocharc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mocharc.js","sourceRoot":"","sources":["../../configs/mocharc.ts"],"names":[],"mappings":"AAAA;;;;;;;;wEAQwE;AAExE,YAAY,CAAC;;AAEb,kEAA+D;AAE/D;;GAEG;AAEH,MAAM,CAAC,OAAO,GAAG;IAChB,OAAO,EAAE,iCAAe,CAAC,qBAAqB;IAC9C,QAAQ,EAAE,uBAAuB;IACjC,eAAe,EAAE,0CAA0C;IAC3D,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IACzD,IAAI,EAAE,iCAAe,CAAC,UAAU;IAChC,YAAY,EAAE,IAAI;IAClB,IAAI;IACH,0FAA0F;IAC1F,6FAA6F;IAC7F,iCAAe,CAAC,eAAe;QAC9B,CAAC,CAAC,iFAAiF;YACjF,iCAAe,CAAC,eAAe;gBAChC,CAAC,CAAC,cAAc,iCAAe,CAAC,eAAe,IAAI,iCAAe,CAAC,eAAe,UAAU;gBAC5F,CAAC,CAAC,cAAc,iCAAe,CAAC,eAAe,aAAa;QAC7D,CAAC,CAAC,iCAAe,CAAC,eAAe;YACjC,CAAC,CAAC,CAAC,iBAAiB,iCAAe,CAAC,eAAe,UAAU,EAAE,cAAc,iCAAe,CAAC,eAAe,UAAU,CAAC;YACvH,CAAC,CAAC,CAAC,0BAA0B,EAAE,uBAAuB,CAAC;IACzD,OAAO,EAAE,iCAAe,CAAC,aAAa;CACtC,CAAC"}
1
+ {"version":3,"file":"mocharc.js","sourceRoot":"","sources":["../../configs/mocharc.ts"],"names":[],"mappings":"AAAA;;;;;;;;wEAQwE;AAExE,YAAY,CAAC;;AAEb,kEAA+D;AAC/D,0EAAuE;AAEvE;;GAEG;AAEH,MAAM,CAAC,OAAO,GAAG;IAChB,OAAO,EAAE,iCAAe,CAAC,qBAAqB;IAC9C,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,uBAAuB;IACjC,eAAe,EAAE,wCAAwC;IACzD,EAAE,EAAE,KAAK;IACT,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IAC/B,OAAO,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IACzD,IAAI,EAAE,iCAAe,CAAC,UAAU;IAChC,YAAY,EAAE,IAAI;IAClB,IAAI,EACH,yCAAmB,CAAC,gBAAgB,KAAK,EAAE;QAC1C,CAAC,CAAC,eAAe,iCAAe,CAAC,eAAe,IAAI,iCAAe,CAAC,WAAW,WAAW;QAC1F,CAAC,CAAC,0FAA0F;YAC5F,6FAA6F;YAC7F,iCAAe,CAAC,eAAe;gBAC/B,CAAC,CAAC,iFAAiF;oBACjF,iCAAe,CAAC,eAAe;wBAChC,CAAC,CAAC,cAAc,iCAAe,CAAC,eAAe,IAAI,iCAAe,CAAC,eAAe,UAAU;wBAC5F,CAAC,CAAC,cAAc,iCAAe,CAAC,eAAe,aAAa;gBAC7D,CAAC,CAAC,iCAAe,CAAC,eAAe;oBACjC,CAAC,CAAC,CAAC,iBAAiB,iCAAe,CAAC,eAAe,UAAU,EAAE,cAAc,iCAAe,CAAC,eAAe,UAAU,CAAC;oBACvH,CAAC,CAAC,CAAC,0BAA0B,EAAE,uBAAuB,CAAC;IACzD,OAAO,EAAE,iCAAe,CAAC,aAAa;IACtC,IAAI,EAAE,iCAAe,CAAC,UAAU;CAChC,CAAC"}
@@ -48,7 +48,8 @@ exports.API_TEST_CONSTANTS = {
48
48
  * to run all devfile from registry. used in DevfileAcceptanceTestAPI.suite.ts
49
49
  */
50
50
  TS_API_ACCEPTANCE_TEST_REGISTRY_URL() {
51
- return process.env.TS_API_ACCEPTANCE_TEST_REGISTRY_URL || exports.SUPPORTED_DEVFILE_REGISTRIES.INBUILT_APPLICATION_DEVFILE_REGISTRY_URL();
52
- }
51
+ return process.env.TS_API_ACCEPTANCE_TEST_REGISTRY_URL || '';
52
+ },
53
+ TS_API_TEST_DEV_WORKSPACE_LIST: process.env.TS_API_TEST_DEV_WORKSPACE_LIST || undefined
53
54
  };
54
55
  //# sourceMappingURL=API_TEST_CONSTANTS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"API_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/API_TEST_CONSTANTS.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,+DAA4D;AAE5D,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACpC,sCAAS,CAAA;IACT,gDAAmB,CAAA;AACpB,CAAC,EAHW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAGpC;AAEY,QAAA,4BAA4B,GAGrC;IACH,wCAAwC,EAAE,GAAW,EAAE,CAAC,GAAG,yCAAmB,CAAC,oBAAoB,6BAA6B;IAChI,gCAAgC,EAAE,kFAAkF;CACpH,CAAC;AACW,QAAA,kBAAkB,GAO3B;IACH;;OAEG;IACH,wCAAwC,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,yBAAyB,CAAC,EAAE;IAE9H;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IAErE;;;OAGG;IACH,uCAAuC,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,SAAS;IAEzG;;;OAGG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS;IAEzF;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IAErE;;OAEG;IACH,mCAAmC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,oCAA4B,CAAC,wCAAwC,EAAE,CAAC;IACnI,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"API_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/API_TEST_CONSTANTS.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,+DAA4D;AAE5D,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACpC,sCAAS,CAAA;IACT,gDAAmB,CAAA;AACpB,CAAC,EAHW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAGpC;AAEY,QAAA,4BAA4B,GAGrC;IACH,wCAAwC,EAAE,GAAW,EAAE,CAAC,GAAG,yCAAmB,CAAC,oBAAoB,6BAA6B;IAChI,gCAAgC,EAAE,kFAAkF;CACpH,CAAC;AACW,QAAA,kBAAkB,GAQ3B;IACH;;OAEG;IACH,wCAAwC,EAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,yBAAyB,CAAC,EAAE;IAE9H;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IAErE;;;OAGG;IACH,uCAAuC,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,SAAS;IAEzG;;;OAGG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS;IAEzF;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IAErE;;OAEG;IACH,mCAAmC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,8BAA8B,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,SAAS;CACvF,CAAC"}