@eclipse-che/che-e2e 7.73.0 → 7.74.0-dev-1d09cb7

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 (177) hide show
  1. package/configs/inversify.config.ts +6 -6
  2. package/configs/inversify.types.ts +27 -27
  3. package/configs/mocharc.ts +21 -21
  4. package/constants/APITestConstants.ts +39 -38
  5. package/constants/BaseTestConstants.ts +46 -43
  6. package/constants/ChromeDriverConstants.ts +29 -29
  7. package/constants/FactoryTestConstants.ts +30 -30
  8. package/constants/MonacoConstants.ts +10 -10
  9. package/constants/OAuthConstants.ts +46 -46
  10. package/constants/ReporterConstants.ts +28 -28
  11. package/constants/TimeoutConstants.ts +101 -101
  12. package/dist/configs/inversify.config.js.map +1 -1
  13. package/dist/configs/inversify.types.js.map +1 -1
  14. package/dist/configs/mocharc.js +1 -1
  15. package/dist/configs/mocharc.js.map +1 -1
  16. package/dist/constants/APITestConstants.js +2 -2
  17. package/dist/constants/APITestConstants.js.map +1 -1
  18. package/dist/constants/BaseTestConstants.js +2 -1
  19. package/dist/constants/BaseTestConstants.js.map +1 -1
  20. package/dist/constants/ChromeDriverConstants.js +1 -1
  21. package/dist/constants/ChromeDriverConstants.js.map +1 -1
  22. package/dist/constants/FactoryTestConstants.js +1 -1
  23. package/dist/constants/FactoryTestConstants.js.map +1 -1
  24. package/dist/constants/MonacoConstants.js +1 -1
  25. package/dist/constants/MonacoConstants.js.map +1 -1
  26. package/dist/constants/OAuthConstants.js +1 -1
  27. package/dist/constants/OAuthConstants.js.map +1 -1
  28. package/dist/constants/ReporterConstants.js +1 -1
  29. package/dist/constants/ReporterConstants.js.map +1 -1
  30. package/dist/constants/TimeoutConstants.js.map +1 -1
  31. package/dist/driver/ChromeDriver.js.map +1 -1
  32. package/dist/pageobjects/dashboard/CreateWorkspace.js +8 -8
  33. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  34. package/dist/pageobjects/dashboard/Dashboard.js +11 -11
  35. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  36. package/dist/pageobjects/dashboard/Workspaces.js +14 -14
  37. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  38. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +8 -8
  39. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  40. package/dist/pageobjects/git-providers/OauthPage.js +17 -17
  41. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
  42. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +1 -1
  43. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
  44. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +5 -5
  45. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -1
  46. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +1 -1
  47. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -1
  48. package/dist/pageobjects/login/openshift/OcpLoginPage.js +10 -10
  49. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -1
  50. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +2 -2
  51. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -1
  52. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +1 -1
  53. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -1
  54. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +6 -6
  55. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -1
  56. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +2 -2
  57. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -1
  58. package/dist/pageobjects/openshift/OcpApplicationPage.js +2 -2
  59. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -1
  60. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +5 -5
  61. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -1
  62. package/dist/pageobjects/openshift/OcpMainPage.js +11 -11
  63. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
  64. package/dist/specs/MochaHooks.js +1 -1
  65. package/dist/specs/MochaHooks.js.map +1 -1
  66. package/dist/specs/SmokeTest.spec.js +7 -3
  67. package/dist/specs/SmokeTest.spec.js.map +1 -1
  68. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
  69. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +7 -5
  70. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
  71. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +1 -1
  72. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
  73. package/dist/specs/api/PodOverridesAPI.spec.js +2 -1
  74. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
  75. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +9 -5
  76. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
  77. package/dist/specs/dashboard-samples/Quarkus.spec.js +7 -3
  78. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
  79. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +6 -2
  80. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
  81. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +3 -1
  82. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
  83. package/dist/specs/factory/Factory.spec.js +3 -1
  84. package/dist/specs/factory/Factory.spec.js.map +1 -1
  85. package/dist/specs/factory/NoSetupRepoFactory.spec.js +4 -2
  86. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  87. package/dist/specs/factory/RefusedOAuthFactory.spec.js +4 -2
  88. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  89. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +6 -2
  90. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -1
  91. package/dist/tests-library/LoginTests.js.map +1 -1
  92. package/dist/tests-library/ProjectAndFileTests.js +3 -3
  93. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  94. package/dist/tests-library/WorkspaceHandlingTests.js +54 -74
  95. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  96. package/dist/utils/BrowserTabsUtil.js +10 -10
  97. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  98. package/dist/utils/CheReporter.js.map +1 -1
  99. package/dist/utils/DevWorkspaceConfigurationHelper.js +2 -2
  100. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
  101. package/dist/utils/DevfilesRegistryHelper.js +7 -7
  102. package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
  103. package/dist/utils/DriverHelper.js +81 -81
  104. package/dist/utils/DriverHelper.js.map +1 -1
  105. package/dist/utils/KubernetesCommandLineToolsExecutor.js +38 -35
  106. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  107. package/dist/utils/Logger.js +45 -21
  108. package/dist/utils/Logger.js.map +1 -1
  109. package/dist/utils/ScreenCatcher.js.map +1 -1
  110. package/dist/utils/ShellExecutor.js.map +1 -1
  111. package/dist/utils/StringUtil.js +2 -2
  112. package/dist/utils/StringUtil.js.map +1 -1
  113. package/dist/utils/request-handlers/CheApiRequestHandler.js +13 -11
  114. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
  115. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +1 -1
  116. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -1
  117. package/dist/utils/workspace/ApiUrlResolver.js +3 -3
  118. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  119. package/dist/utils/workspace/TestWorkspaceUtil.js +20 -16
  120. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  121. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -1
  122. package/driver/ChromeDriver.ts +44 -44
  123. package/driver/IDriver.ts +1 -1
  124. package/package.json +1 -1
  125. package/pageobjects/dashboard/CreateWorkspace.ts +52 -52
  126. package/pageobjects/dashboard/Dashboard.ts +72 -72
  127. package/pageobjects/dashboard/Workspaces.ts +138 -139
  128. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +92 -93
  129. package/pageobjects/git-providers/OauthPage.ts +136 -136
  130. package/pageobjects/ide/CheCodeLocatorLoader.ts +40 -40
  131. package/pageobjects/login/interfaces/ICheLoginPage.ts +1 -1
  132. package/pageobjects/login/interfaces/IOcpLoginPage.ts +1 -1
  133. package/pageobjects/login/kubernetes/DexLoginPage.ts +27 -27
  134. package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +11 -11
  135. package/pageobjects/login/openshift/OcpLoginPage.ts +50 -50
  136. package/pageobjects/login/openshift/OcpRedHatLoginPage.ts +21 -21
  137. package/pageobjects/login/openshift/OcpUserLoginPage.ts +14 -14
  138. package/pageobjects/login/openshift/RedHatLoginPage.ts +44 -41
  139. package/pageobjects/login/openshift/RegularUserOcpCheLoginPage.ts +23 -23
  140. package/pageobjects/openshift/OcpApplicationPage.ts +16 -16
  141. package/pageobjects/openshift/OcpImportFromGitPage.ts +54 -54
  142. package/pageobjects/openshift/OcpMainPage.ts +64 -64
  143. package/resources/pod-overrides-airgap.yaml +37 -0
  144. package/specs/MochaHooks.ts +44 -44
  145. package/specs/SmokeTest.spec.ts +35 -31
  146. package/specs/api/ContainerOverridesAPI.spec.ts +23 -23
  147. package/specs/api/DevfileAcceptanceTestAPI.spec.ts +93 -91
  148. package/specs/api/EmptyWorkspaceAPI.spec.ts +50 -50
  149. package/specs/api/PodOverridesAPI.spec.ts +30 -29
  150. package/specs/dashboard-samples/EmptyWorkspace.spec.ts +29 -25
  151. package/specs/dashboard-samples/Quarkus.spec.ts +31 -27
  152. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +156 -152
  153. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +62 -64
  154. package/specs/factory/Factory.spec.ts +149 -147
  155. package/specs/factory/NoSetupRepoFactory.spec.ts +188 -186
  156. package/specs/factory/RefusedOAuthFactory.spec.ts +182 -180
  157. package/specs/miscellaneous/PredefinedNamespace.spec.ts +52 -48
  158. package/tests-library/LoginTests.ts +29 -29
  159. package/tests-library/ProjectAndFileTests.ts +13 -13
  160. package/tests-library/WorkspaceHandlingTests.ts +84 -103
  161. package/utils/BrowserTabsUtil.ts +69 -69
  162. package/utils/CheReporter.ts +4 -6
  163. package/utils/DevWorkspaceConfigurationHelper.ts +58 -58
  164. package/utils/DevfilesRegistryHelper.ts +51 -51
  165. package/utils/DriverHelper.ts +599 -600
  166. package/utils/KubernetesCommandLineToolsExecutor.ts +166 -158
  167. package/utils/Logger.ts +119 -67
  168. package/utils/ScreenCatcher.ts +42 -42
  169. package/utils/ShellExecutor.ts +10 -10
  170. package/utils/StringUtil.ts +29 -29
  171. package/utils/request-handlers/CheApiRequestHandler.ts +84 -82
  172. package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +18 -18
  173. package/utils/request-handlers/headers/IAuthorizationHeaderHandler.ts +1 -1
  174. package/utils/workspace/ApiUrlResolver.ts +23 -23
  175. package/utils/workspace/ITestWorkspaceUtil.ts +29 -29
  176. package/utils/workspace/TestWorkspaceUtil.ts +120 -116
  177. package/utils/workspace/WorkspaceStatus.ts +3 -3
@@ -49,152 +49,154 @@ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
49
49
 
50
50
  const webCheCodeLocators: Locators = new CheCodeLocatorLoader().webCheCodeLocators;
51
51
 
52
- suite(`Create a workspace via launching a factory from the ${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository`, async function (): Promise<void> {
53
- const oauthPage: OauthPage = new OauthPage(driverHelper);
54
-
55
- let projectSection: ViewSection;
56
- let scmProvider: SingleScmProvider;
57
- let rest: SingleScmProvider[];
58
- let scmContextMenu: ContextMenu;
59
-
60
- // test specific data
61
- const timeToRefresh: number = 1500;
62
- const changesToCommit: string = (new Date()).getTime().toString();
63
- const fileToChange: string = 'Date.txt';
64
- const commitChangesButtonLabel: string = `Commit Changes on "${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}"`;
65
- const refreshButtonLabel: string = 'Refresh';
66
- const pushItemLabel: string = 'Push';
67
- let testRepoProjectName: string;
68
-
69
- loginTests.loginIntoChe();
70
- test(`Navigate to the factory URL`, async function (): Promise<void> {
71
- await browserTabsUtil.navigateTo(FactoryTestConstants.TS_SELENIUM_FACTORY_URL());
52
+ suite(`Create a workspace via launching a factory from the ${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository`, async function(): Promise<void> {
53
+ const oauthPage: OauthPage = new OauthPage(driverHelper);
54
+
55
+ let projectSection: ViewSection;
56
+ let scmProvider: SingleScmProvider;
57
+ let rest: SingleScmProvider[];
58
+ let scmContextMenu: ContextMenu;
59
+
60
+ // test specific data
61
+ const timeToRefresh: number = 1500;
62
+ const changesToCommit: string = (new Date()).getTime().toString();
63
+ const fileToChange: string = 'Date.txt';
64
+ const commitChangesButtonLabel: string = `Commit Changes on "${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}"`;
65
+ const refreshButtonLabel: string = 'Refresh';
66
+ const pushItemLabel: string = 'Push';
67
+ let testRepoProjectName: string;
68
+
69
+ loginTests.loginIntoChe();
70
+ test(`Navigate to the factory URL`, async function(): Promise<void> {
71
+ await browserTabsUtil.navigateTo(FactoryTestConstants.TS_SELENIUM_FACTORY_URL());
72
+ });
73
+
74
+ if (OAuthConstants.TS_SELENIUM_GIT_PROVIDER_OAUTH) {
75
+ test(`Authorize with a ${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} OAuth`, async function(): Promise<void> {
76
+ await oauthPage.login();
77
+ await oauthPage.waitOauthPage();
78
+ await oauthPage.confirmAccess();
72
79
  });
73
-
74
- if (OAuthConstants.TS_SELENIUM_GIT_PROVIDER_OAUTH) {
75
- test(`Authorize with a ${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} OAuth`, async function (): Promise<void> {
76
- await oauthPage.login();
77
- await oauthPage.waitOauthPage();
78
- await oauthPage.confirmAccess();
79
- });
80
- }
81
-
82
- workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
83
-
84
- test('Registering the running workspace', async function (): Promise<void> {
85
- registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
86
- });
87
-
88
- test('Wait the workspace readiness', async function (): Promise<void> {
89
- await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
90
- });
91
-
92
- test('Check if a project folder has been created', async function (): Promise<void> {
93
- testRepoProjectName = StringUtil.getProjectNameFromGitUrl(FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_URL);
94
- Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
95
- projectSection = await new SideBarView().getContent().getSection(testRepoProjectName);
96
- });
97
-
98
- test('Check if the project files were imported', async function (): Promise<void> {
99
- const label: string = BaseTestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
100
- Logger.debug(`projectSection.findItem: find ${label}`);
101
- const isFileImported: ViewItem | undefined = await projectSection.findItem(label);
102
- expect(isFileImported).not.eqls(undefined);
103
- });
104
-
105
- test('Accept the project as a trusted one', async function (): Promise<void> {
106
- const buttonYesITrustTheAuthors: string = `Yes, I trust the authors`;
107
- const trustedProjectDialog: ModalDialog = new ModalDialog();
108
- await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.button);
109
- Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
110
- await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
111
- });
112
-
113
- test('Make changes to the file', async function (): Promise<void> {
114
- Logger.debug(`projectSection.openItem: "${fileToChange}"`);
115
- await projectSection.openItem(fileToChange);
116
- const editor: TextEditor = await new EditorView().openEditor(fileToChange) as TextEditor;
117
- await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
118
- Logger.debug(`editor.clearText`);
119
- await editor.clearText();
120
- Logger.debug(`editor.typeTextAt: "${changesToCommit}"`);
121
- await editor.typeTextAt(1, 1, changesToCommit);
122
- });
123
-
124
- test('Open a source control manager', async function (): Promise<void> {
125
- const viewSourceControl: string = `Source Control`;
126
- const sourceControl: ViewControl = await new ActivityBar().getViewControl(viewSourceControl) as ViewControl;
127
- Logger.debug(`sourceControl.openView: "${viewSourceControl}"`);
128
- await sourceControl.openView();
129
- const scmView: NewScmView = new NewScmView();
130
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
131
- [scmProvider, ...rest] = await scmView.getProviders();
132
- Logger.debug(`scmView.getProviders: "${scmProvider}, ${scmProvider}"`);
133
- });
134
-
135
- test('Check if the changes are displayed in the source control manager', async function (): Promise<void> {
136
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
137
- await driverHelper.wait(timeToRefresh);
138
- Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
139
- await scmProvider.takeAction(refreshButtonLabel);
140
- // wait while changes counter will be refreshed
141
- await driverHelper.wait(timeToRefresh);
142
- const changes: number = await scmProvider.getChangeCount();
143
- Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
144
- expect(changes).eql(1);
145
- });
146
-
147
- test('Stage the changes', async function (): Promise<void> {
148
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
149
- Logger.debug(`scmProvider.openMoreActions`);
150
- scmContextMenu = await scmProvider.openMoreActions();
151
- await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.contextView);
152
- Logger.debug(`scmContextMenu.select: "Changes" -> "Stage All Changes"`);
153
- await scmContextMenu.select('Changes', 'Stage All Changes');
154
- });
155
-
156
- test('Commit the changes', async function (): Promise<void> {
157
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
158
- Logger.debug(`scmProvider.commitChanges: commit name "Commit ${changesToCommit}"`);
159
- await scmProvider.commitChanges('Commit ' + changesToCommit);
160
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
161
- await driverHelper.wait(timeToRefresh);
162
- Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
163
- await scmProvider.takeAction(refreshButtonLabel);
164
- // wait while changes counter will be refreshed
165
- await driverHelper.wait(timeToRefresh);
166
- const changes: number = await scmProvider.getChangeCount();
167
- Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
168
- expect(changes).eql(0);
169
- });
170
-
171
- test('Push the changes', async function (): Promise<void> {
172
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(`Push 1 commits to origin/${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}`));
173
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
174
- Logger.debug(`scmProvider.openMoreActions`);
175
- scmContextMenu = await scmProvider.openMoreActions();
176
- await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.itemConstructor(pushItemLabel));
177
- Logger.debug(`scmContextMenu.select: "${pushItemLabel}"`);
178
- await scmContextMenu.select(pushItemLabel);
179
- });
180
-
181
- test('Check if the changes were pushed', async function (): Promise<void> {
182
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
183
- await driverHelper.wait(timeToRefresh);
184
- Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
185
- await scmProvider.takeAction(refreshButtonLabel);
186
- const isCommitButtonDisabled: string = await driverHelper.waitAndGetElementAttribute(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel), 'aria-disabled');
187
- expect(isCommitButtonDisabled).eql('true');
188
- });
189
-
190
- test('Stop the workspace', async function (): Promise<void> {
191
- await workspaceHandlingTests.stopWorkspace(WorkspaceHandlingTests.getWorkspaceName());
192
- await browserTabsUtil.closeAllTabsExceptCurrent();
193
- });
194
-
195
- test('Delete the workspace', async function (): Promise<void> {
196
- await workspaceHandlingTests.removeWorkspace(WorkspaceHandlingTests.getWorkspaceName());
197
- });
198
-
199
- loginTests.logoutFromChe();
80
+ }
81
+
82
+ test('Obtain workspace name from workspace loader page', async function(): Promise<void> {
83
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
84
+ });
85
+
86
+ test('Registering the running workspace', async function(): Promise<void> {
87
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
88
+ });
89
+
90
+ test('Wait the workspace readiness', async function(): Promise<void> {
91
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
92
+ });
93
+
94
+ test('Check if a project folder has been created', async function(): Promise<void> {
95
+ testRepoProjectName = StringUtil.getProjectNameFromGitUrl(FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_URL);
96
+ Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
97
+ projectSection = await new SideBarView().getContent().getSection(testRepoProjectName);
98
+ });
99
+
100
+ test('Check if the project files were imported', async function(): Promise<void> {
101
+ const label: string = BaseTestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
102
+ Logger.debug(`projectSection.findItem: find ${label}`);
103
+ const isFileImported: ViewItem | undefined = await projectSection.findItem(label);
104
+ expect(isFileImported).not.eqls(undefined);
105
+ });
106
+
107
+ test('Accept the project as a trusted one', async function(): Promise<void> {
108
+ const buttonYesITrustTheAuthors: string = `Yes, I trust the authors`;
109
+ const trustedProjectDialog: ModalDialog = new ModalDialog();
110
+ await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.button);
111
+ Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
112
+ await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
113
+ });
114
+
115
+ test('Make changes to the file', async function(): Promise<void> {
116
+ Logger.debug(`projectSection.openItem: "${fileToChange}"`);
117
+ await projectSection.openItem(fileToChange);
118
+ const editor: TextEditor = await new EditorView().openEditor(fileToChange) as TextEditor;
119
+ await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
120
+ Logger.debug(`editor.clearText`);
121
+ await editor.clearText();
122
+ Logger.debug(`editor.typeTextAt: "${changesToCommit}"`);
123
+ await editor.typeTextAt(1, 1, changesToCommit);
124
+ });
125
+
126
+ test('Open a source control manager', async function(): Promise<void> {
127
+ const viewSourceControl: string = `Source Control`;
128
+ const sourceControl: ViewControl = await new ActivityBar().getViewControl(viewSourceControl) as ViewControl;
129
+ Logger.debug(`sourceControl.openView: "${viewSourceControl}"`);
130
+ await sourceControl.openView();
131
+ const scmView: NewScmView = new NewScmView();
132
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
133
+ [scmProvider, ...rest] = await scmView.getProviders();
134
+ Logger.debug(`scmView.getProviders: "${scmProvider}, ${scmProvider}"`);
135
+ });
136
+
137
+ test('Check if the changes are displayed in the source control manager', async function(): Promise<void> {
138
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
139
+ await driverHelper.wait(timeToRefresh);
140
+ Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
141
+ await scmProvider.takeAction(refreshButtonLabel);
142
+ // wait while changes counter will be refreshed
143
+ await driverHelper.wait(timeToRefresh);
144
+ const changes: number = await scmProvider.getChangeCount();
145
+ Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
146
+ expect(changes).eql(1);
147
+ });
148
+
149
+ test('Stage the changes', async function(): Promise<void> {
150
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
151
+ Logger.debug(`scmProvider.openMoreActions`);
152
+ scmContextMenu = await scmProvider.openMoreActions();
153
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.contextView);
154
+ Logger.debug(`scmContextMenu.select: "Changes" -> "Stage All Changes"`);
155
+ await scmContextMenu.select('Changes', 'Stage All Changes');
156
+ });
157
+
158
+ test('Commit the changes', async function(): Promise<void> {
159
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
160
+ Logger.debug(`scmProvider.commitChanges: commit name "Commit ${changesToCommit}"`);
161
+ await scmProvider.commitChanges('Commit ' + changesToCommit);
162
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
163
+ await driverHelper.wait(timeToRefresh);
164
+ Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
165
+ await scmProvider.takeAction(refreshButtonLabel);
166
+ // wait while changes counter will be refreshed
167
+ await driverHelper.wait(timeToRefresh);
168
+ const changes: number = await scmProvider.getChangeCount();
169
+ Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
170
+ expect(changes).eql(0);
171
+ });
172
+
173
+ test('Push the changes', async function(): Promise<void> {
174
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(`Push 1 commits to origin/${FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}`));
175
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
176
+ Logger.debug(`scmProvider.openMoreActions`);
177
+ scmContextMenu = await scmProvider.openMoreActions();
178
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.itemConstructor(pushItemLabel));
179
+ Logger.debug(`scmContextMenu.select: "${pushItemLabel}"`);
180
+ await scmContextMenu.select(pushItemLabel);
181
+ });
182
+
183
+ test('Check if the changes were pushed', async function(): Promise<void> {
184
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
185
+ await driverHelper.wait(timeToRefresh);
186
+ Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
187
+ await scmProvider.takeAction(refreshButtonLabel);
188
+ const isCommitButtonDisabled: string = await driverHelper.waitAndGetElementAttribute(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel), 'aria-disabled');
189
+ expect(isCommitButtonDisabled).eql('true');
190
+ });
191
+
192
+ test('Stop the workspace', async function(): Promise<void> {
193
+ await workspaceHandlingTests.stopWorkspace(WorkspaceHandlingTests.getWorkspaceName());
194
+ await browserTabsUtil.closeAllTabsExceptCurrent();
195
+ });
196
+
197
+ test('Delete the workspace', async function(): Promise<void> {
198
+ await workspaceHandlingTests.removeWorkspace(WorkspaceHandlingTests.getWorkspaceName());
199
+ });
200
+
201
+ loginTests.logoutFromChe();
200
202
  });