@eclipse-che/che-e2e 7.63.0 → 7.64.0-dev-db63138

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 (150) hide show
  1. package/README.md +11 -37
  2. package/build/dockerfiles/entrypoint.sh +1 -1
  3. package/configs/inversify.config.ts +11 -26
  4. package/configs/inversify.types.ts +3 -33
  5. package/configs/mocharc.ts +9 -3
  6. package/configs/sh-scripts/initDefaultValues.sh +0 -5
  7. package/constants/TestConstants.ts +34 -96
  8. package/dist/configs/inversify.config.js +8 -23
  9. package/dist/configs/inversify.config.js.map +1 -1
  10. package/dist/configs/inversify.types.js +3 -33
  11. package/dist/configs/inversify.types.js.map +1 -1
  12. package/dist/configs/mocharc.js +11 -4
  13. package/dist/configs/mocharc.js.map +1 -1
  14. package/dist/constants/TestConstants.js +31 -86
  15. package/dist/constants/TestConstants.js.map +1 -1
  16. package/dist/driver/ChromeDriver.js +1 -1
  17. package/dist/driver/ChromeDriver.js.map +1 -1
  18. package/dist/index.js +63 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/pageobjects/dashboard/CreateWorkspace.js +3 -11
  21. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  22. package/dist/pageobjects/dashboard/Dashboard.js +16 -1
  23. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  24. package/dist/pageobjects/dashboard/Workspaces.js +1 -3
  25. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  26. package/dist/pageobjects/git-providers/OauthPage.js +150 -0
  27. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -0
  28. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +65 -0
  29. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -0
  30. package/dist/pageobjects/login/OcpRedHatLoginPage.js +67 -0
  31. package/dist/pageobjects/login/OcpRedHatLoginPage.js.map +1 -0
  32. package/dist/pageobjects/login/RedHatLoginPage.js +78 -0
  33. package/dist/pageobjects/login/RedHatLoginPage.js.map +1 -0
  34. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js +3 -21
  35. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +1 -1
  36. package/dist/pageobjects/openshift/CheLoginPage.js +0 -33
  37. package/dist/pageobjects/openshift/CheLoginPage.js.map +1 -1
  38. package/dist/pageobjects/openshift/OcpLoginPage.js +0 -14
  39. package/dist/pageobjects/openshift/OcpLoginPage.js.map +1 -1
  40. package/dist/specs/MochaHooks.js +2 -2
  41. package/dist/specs/MochaHooks.js.map +1 -1
  42. package/dist/specs/devfiles/EmptyWorkspace.spec.js +1 -0
  43. package/dist/specs/devfiles/EmptyWorkspace.spec.js.map +1 -1
  44. package/dist/specs/devfiles/Quarkus.spec.js +50 -0
  45. package/dist/specs/devfiles/Quarkus.spec.js.map +1 -0
  46. package/dist/specs/factory/Factory.spec.js +160 -0
  47. package/dist/specs/factory/Factory.spec.js.map +1 -0
  48. package/dist/specs/factory/NoSetupRepoFactory.spec.js +228 -0
  49. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -0
  50. package/dist/specs/factory/RefusedOAuthFactory.spec.js +220 -0
  51. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -0
  52. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +66 -0
  53. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -0
  54. package/dist/tests-library/LoginTests.js +10 -2
  55. package/dist/tests-library/LoginTests.js.map +1 -1
  56. package/dist/tests-library/WorkspaceHandlingTests.js +3 -6
  57. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  58. package/dist/utils/BrowserTabsUtil.js +2 -21
  59. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  60. package/dist/utils/DriverHelper.js +11 -73
  61. package/dist/utils/DriverHelper.js.map +1 -1
  62. package/dist/utils/Logger.js +5 -0
  63. package/dist/utils/Logger.js.map +1 -1
  64. package/dist/utils/Sanitizer.js.map +1 -1
  65. package/dist/utils/request-handlers/CheApiRequestHandler.js +1 -1
  66. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
  67. package/dist/utils/vsc/GitUtil.js +41 -0
  68. package/dist/utils/vsc/GitUtil.js.map +1 -0
  69. package/dist/utils/workspace/ApiUrlResolver.js +0 -3
  70. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  71. package/dist/utils/workspace/TestWorkspaceUtil.js +2 -192
  72. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  73. package/driver/ChromeDriver.ts +1 -1
  74. package/index.ts +37 -0
  75. package/package.json +9 -5
  76. package/pageobjects/dashboard/CreateWorkspace.ts +4 -15
  77. package/pageobjects/dashboard/Dashboard.ts +29 -4
  78. package/pageobjects/dashboard/Workspaces.ts +1 -3
  79. package/pageobjects/git-providers/OauthPage.ts +156 -0
  80. package/pageobjects/ide/CheCodeLocatorLoader.ts +69 -0
  81. package/pageobjects/login/OcpRedHatLoginPage.ts +49 -0
  82. package/pageobjects/login/RedHatLoginPage.ts +62 -0
  83. package/pageobjects/login/RegularUserOcpCheLoginPage.ts +1 -20
  84. package/pageobjects/openshift/CheLoginPage.ts +6 -55
  85. package/pageobjects/openshift/OcpLoginPage.ts +0 -21
  86. package/specs/MochaHooks.ts +2 -2
  87. package/specs/devfiles/EmptyWorkspace.spec.ts +1 -0
  88. package/specs/devfiles/Quarkus.spec.ts +52 -0
  89. package/specs/factory/Factory.spec.ts +199 -0
  90. package/specs/factory/NoSetupRepoFactory.spec.ts +272 -0
  91. package/specs/factory/RefusedOAuthFactory.spec.ts +260 -0
  92. package/specs/miscellaneous/PredefinedNamespace.spec.ts +74 -0
  93. package/tests-library/LoginTests.ts +9 -1
  94. package/tests-library/WorkspaceHandlingTests.ts +3 -7
  95. package/utils/BrowserTabsUtil.ts +2 -24
  96. package/utils/DriverHelper.ts +9 -84
  97. package/utils/Logger.ts +5 -0
  98. package/utils/Sanitizer.ts +0 -1
  99. package/utils/request-handlers/CheApiRequestHandler.ts +1 -1
  100. package/utils/vsc/GitUtil.ts +28 -0
  101. package/utils/workspace/ApiUrlResolver.ts +0 -4
  102. package/utils/workspace/ITestWorkspaceUtil.ts +1 -56
  103. package/utils/workspace/TestWorkspaceUtil.ts +2 -243
  104. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +0 -97
  105. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +0 -1
  106. package/dist/pageobjects/login/MultiUserLoginPage.js +0 -49
  107. package/dist/pageobjects/login/MultiUserLoginPage.js.map +0 -1
  108. package/dist/pageobjects/login/UpdateAccountInformationPage.js +0 -74
  109. package/dist/pageobjects/login/UpdateAccountInformationPage.js.map +0 -1
  110. package/dist/pageobjects/third-parties/GitLoginPage.js +0 -85
  111. package/dist/pageobjects/third-parties/GitLoginPage.js.map +0 -1
  112. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js +0 -110
  113. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js.map +0 -1
  114. package/dist/specs/login/LinkCheAndOcpUsers.spec.js +0 -40
  115. package/dist/specs/login/LinkCheAndOcpUsers.spec.js.map +0 -1
  116. package/dist/utils/WorkspaceNameHandler.js +0 -60
  117. package/dist/utils/WorkspaceNameHandler.js.map +0 -1
  118. package/dist/utils/request-handlers/tokens/CheMultiuserTokenHandler.js +0 -50
  119. package/dist/utils/request-handlers/tokens/CheMultiuserTokenHandler.js.map +0 -1
  120. package/dist/utils/request-handlers/tokens/ITokenHandler.js +0 -12
  121. package/dist/utils/request-handlers/tokens/ITokenHandler.js.map +0 -1
  122. package/dist/utils/vsc/CheGitApi.js +0 -42
  123. package/dist/utils/vsc/CheGitApi.js.map +0 -1
  124. package/dist/utils/vsc/github/GitHubUtil.js +0 -126
  125. package/dist/utils/vsc/github/GitHubUtil.js.map +0 -1
  126. package/files/devfiles/plugins/GitHubPullRequestPlugin.yaml +0 -11
  127. package/files/devfiles/plugins/InstallPluginUsingUI.yaml +0 -3
  128. package/files/devfiles/plugins/Java11PluginTest.yaml +0 -17
  129. package/files/devfiles/plugins/PhpPluginTest.yaml +0 -47
  130. package/files/devfiles/plugins/PythonPluginTest.yaml +0 -14
  131. package/files/devfiles/plugins/TypescriptNodeDebug2PluginTest.yaml +0 -49
  132. package/files/devfiles/plugins/VscodeKubernetesPlugin.yaml +0 -12
  133. package/files/devfiles/plugins/VscodeShellcheckPlugin.yaml +0 -12
  134. package/files/devfiles/plugins/VscodeValePlugin.yaml +0 -42
  135. package/files/devfiles/plugins/VscodeXmlPlugin.yaml +0 -12
  136. package/files/devfiles/plugins/VscodeYamlPlugin.yaml +0 -12
  137. package/files/happy-path/containers-happy-path.yaml +0 -127
  138. package/files/happy-path/happy-path-workspace.yaml +0 -95
  139. package/files/happy-path/petclinic-classpath.txt +0 -49
  140. package/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.ts +0 -95
  141. package/pageobjects/login/MultiUserLoginPage.ts +0 -33
  142. package/pageobjects/login/UpdateAccountInformationPage.ts +0 -70
  143. package/pageobjects/third-parties/GitLoginPage.ts +0 -81
  144. package/pageobjects/third-parties/GitOauthAppsSettings.ts +0 -110
  145. package/specs/login/LinkCheAndOcpUsers.spec.ts +0 -49
  146. package/utils/WorkspaceNameHandler.ts +0 -48
  147. package/utils/request-handlers/tokens/CheMultiuserTokenHandler.ts +0 -41
  148. package/utils/request-handlers/tokens/ITokenHandler.ts +0 -14
  149. package/utils/vsc/CheGitApi.ts +0 -22
  150. package/utils/vsc/github/GitHubUtil.ts +0 -110
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /*********************************************************************
3
+ * Copyright (c) 2019 Red Hat, Inc.
4
+ *
5
+ * This program and the accompanying materials are made
6
+ * available under the terms of the Eclipse Public License 2.0
7
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
8
+ *
9
+ * SPDX-License-Identifier: EPL-2.0
10
+ **********************************************************************/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const monaco_page_objects_1 = require("monaco-page-objects");
13
+ const MochaHooks_1 = require("../MochaHooks");
14
+ const inversify_config_1 = require("../../configs/inversify.config");
15
+ const inversify_types_1 = require("../../configs/inversify.types");
16
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
17
+ const Logger_1 = require("../../utils/Logger");
18
+ const stackName = 'Java 11 with Quarkus';
19
+ const projectName = 'quarkus-quickstarts';
20
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
21
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
22
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
23
+ suite(`The ${stackName} userstory`, async function () {
24
+ let projectSection;
25
+ suite(`Create workspace from ${stackName} simple`, async function () {
26
+ loginTests.loginIntoChe();
27
+ workspaceHandlingTests.createAndOpenWorkspace(stackName);
28
+ workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
29
+ test('Register running workspace', async () => {
30
+ MochaHooks_1.registerRunningWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
31
+ });
32
+ test('Wait workspace readiness', async function () {
33
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
34
+ });
35
+ test('Check a project folder has been created', async function () {
36
+ projectSection = await new monaco_page_objects_1.SideBarView().getContent().getSection(projectName);
37
+ Logger_1.Logger.debug(`new SideBarView().getContent().getSection: get ${projectName}`);
38
+ });
39
+ test('Check the project files was imported', async function () {
40
+ const label = 'devfile.yaml';
41
+ await projectSection.findItem(label);
42
+ Logger_1.Logger.debug(`projectSection.findItem: find ${label}`);
43
+ });
44
+ test('Stopping and deleting the workspace', async function () {
45
+ await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
46
+ });
47
+ loginTests.logoutFromChe();
48
+ });
49
+ });
50
+ //# sourceMappingURL=Quarkus.spec.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ /*********************************************************************
3
+ * Copyright (c) 2021 Red Hat, Inc.
4
+ *
5
+ * This program and the accompanying materials are made
6
+ * available under the terms of the Eclipse Public License 2.0
7
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
8
+ *
9
+ * SPDX-License-Identifier: EPL-2.0
10
+ **********************************************************************/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("reflect-metadata");
13
+ const inversify_config_1 = require("../../configs/inversify.config");
14
+ const monaco_page_objects_1 = require("monaco-page-objects");
15
+ const TestConstants_1 = require("../../constants/TestConstants");
16
+ const chai_1 = require("chai");
17
+ const OauthPage_1 = require("../../pageobjects/git-providers/OauthPage");
18
+ const GitUtil_1 = require("../../utils/vsc/GitUtil");
19
+ const CheCodeLocatorLoader_1 = require("../../pageobjects/ide/CheCodeLocatorLoader");
20
+ const MochaHooks_1 = require("../MochaHooks");
21
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
22
+ const inversify_types_1 = require("../../configs/inversify.types");
23
+ const Logger_1 = require("../../utils/Logger");
24
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
25
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
26
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
27
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
28
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
29
+ const webCheCodeLocators = new CheCodeLocatorLoader_1.CheCodeLocatorLoader().webCheCodeLocators;
30
+ suite(`Create a workspace via launching a factory from the ${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository`, async function () {
31
+ const oauthPage = new OauthPage_1.OauthPage(driverHelper);
32
+ let projectSection;
33
+ let scmProvider;
34
+ let rest;
35
+ let scmContextMenu;
36
+ const gitUtilCheCode = new GitUtil_1.GitUtil();
37
+ // test specific data
38
+ const timeToRefresh = 1500;
39
+ const changesToCommit = (new Date()).getTime().toString();
40
+ const fileToChange = 'Date.txt';
41
+ const commitChangesButtonLabel = `Commit Changes on "${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}"`;
42
+ const refreshButtonLabel = 'Refresh';
43
+ const pushItemLabel = 'Push';
44
+ const testRepoProjectName = gitUtilCheCode.getProjectNameFromGitUrl(TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_URL);
45
+ loginTests.loginIntoChe();
46
+ test(`Navigate to the factory URL`, async function () {
47
+ await browserTabsUtil.navigateTo(TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_URL());
48
+ });
49
+ if (TestConstants_1.TestConstants.TS_SELENIUM_GIT_PROVIDER_OAUTH) {
50
+ test(`Authorize with a ${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} OAuth`, async function () {
51
+ await oauthPage.login();
52
+ await oauthPage.waitOauthPage();
53
+ await oauthPage.confirmAccess();
54
+ });
55
+ }
56
+ workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
57
+ test('Registering the running workspace', async function () {
58
+ MochaHooks_1.registerRunningWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
59
+ });
60
+ test('Wait the workspace readiness', async function () {
61
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
62
+ });
63
+ test('Check if a project folder has been created', async function () {
64
+ Logger_1.Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
65
+ projectSection = await new monaco_page_objects_1.SideBarView().getContent().getSection(testRepoProjectName);
66
+ });
67
+ test('Check if the project files were imported', async function () {
68
+ const label = TestConstants_1.TestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
69
+ Logger_1.Logger.debug(`projectSection.findItem: find ${label}`);
70
+ const isFileImported = await projectSection.findItem(label);
71
+ chai_1.expect(isFileImported).not.eqls(undefined);
72
+ });
73
+ test('Accept the project as a trusted one', async function () {
74
+ const buttonYesITrustTheAuthors = `Yes, I trust the authors`;
75
+ const trustedProjectDialog = new monaco_page_objects_1.ModalDialog();
76
+ await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.button);
77
+ Logger_1.Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
78
+ await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
79
+ });
80
+ test('Make changes to the file', async function () {
81
+ Logger_1.Logger.debug(`projectSection.openItem: "${fileToChange}"`);
82
+ await projectSection.openItem(fileToChange);
83
+ const editor = await new monaco_page_objects_1.EditorView().openEditor(fileToChange);
84
+ await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
85
+ Logger_1.Logger.debug(`editor.clearText`);
86
+ await editor.clearText();
87
+ Logger_1.Logger.debug(`editor.typeTextAt: "${changesToCommit}"`);
88
+ await editor.typeTextAt(1, 1, changesToCommit);
89
+ });
90
+ test('Open a source control manager', async function () {
91
+ const viewSourceControl = `Source Control`;
92
+ const sourceControl = await new monaco_page_objects_1.ActivityBar().getViewControl(viewSourceControl);
93
+ Logger_1.Logger.debug(`sourceControl.openView: "${viewSourceControl}"`);
94
+ await sourceControl.openView();
95
+ const scmView = new monaco_page_objects_1.NewScmView();
96
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
97
+ [scmProvider, ...rest] = await scmView.getProviders();
98
+ Logger_1.Logger.debug(`scmView.getProviders: "${scmProvider}, ${scmProvider}"`);
99
+ });
100
+ test('Check if the changes is displayed in the source control manager', async function () {
101
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
102
+ await driverHelper.wait(timeToRefresh);
103
+ Logger_1.Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
104
+ await scmProvider.takeAction(refreshButtonLabel);
105
+ // wait while changes counter will be refreshed
106
+ await driverHelper.wait(timeToRefresh);
107
+ const changes = await scmProvider.getChangeCount();
108
+ Logger_1.Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
109
+ chai_1.expect(changes).eql(1);
110
+ });
111
+ test('Stage the changes', async function () {
112
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
113
+ Logger_1.Logger.debug(`scmProvider.openMoreActions`);
114
+ scmContextMenu = await scmProvider.openMoreActions();
115
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.contextView);
116
+ Logger_1.Logger.debug(`scmContextMenu.select: "Changes" -> "Stage All Changes"`);
117
+ await scmContextMenu.select('Changes', 'Stage All Changes');
118
+ });
119
+ test('Commit the changes', async function () {
120
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
121
+ Logger_1.Logger.debug(`scmProvider.commitChanges: commit name "Commit ${changesToCommit}"`);
122
+ await scmProvider.commitChanges('Commit ' + changesToCommit);
123
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
124
+ await driverHelper.wait(timeToRefresh);
125
+ Logger_1.Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
126
+ await scmProvider.takeAction(refreshButtonLabel);
127
+ // wait while changes counter will be refreshed
128
+ await driverHelper.wait(timeToRefresh);
129
+ const changes = await scmProvider.getChangeCount();
130
+ Logger_1.Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
131
+ chai_1.expect(changes).eql(0);
132
+ });
133
+ test('Push the changes', async function () {
134
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(`Push 1 commits to origin/${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}`));
135
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
136
+ Logger_1.Logger.debug(`scmProvider.openMoreActions`);
137
+ scmContextMenu = await scmProvider.openMoreActions();
138
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.itemConstructor(pushItemLabel));
139
+ Logger_1.Logger.debug(`scmContextMenu.select: "${pushItemLabel}"`);
140
+ await scmContextMenu.select(pushItemLabel);
141
+ });
142
+ test('Check if the changes were pushed', async function () {
143
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
144
+ await driverHelper.wait(timeToRefresh);
145
+ Logger_1.Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
146
+ await scmProvider.takeAction(refreshButtonLabel);
147
+ const isCommitButtonDisabled = await driverHelper.waitAndGetElementAttribute(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel), 'aria-disabled');
148
+ chai_1.expect(isCommitButtonDisabled).eql('true');
149
+ });
150
+ test(`Stop and remove the workspace`, async function () {
151
+ await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
152
+ });
153
+ loginTests.logoutFromChe();
154
+ suiteTeardown('Close the browser', async function () {
155
+ if (!TestConstants_1.TestConstants.TS_DEBUG_MODE) {
156
+ await driverHelper.getDriver().close();
157
+ }
158
+ });
159
+ });
160
+ //# sourceMappingURL=Factory.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Factory.spec.js","sourceRoot":"","sources":["../../../specs/factory/Factory.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ /*********************************************************************
3
+ * Copyright (c) 2021 Red Hat, Inc.
4
+ *
5
+ * This program and the accompanying materials are made
6
+ * available under the terms of the Eclipse Public License 2.0
7
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
8
+ *
9
+ * SPDX-License-Identifier: EPL-2.0
10
+ **********************************************************************/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("reflect-metadata");
13
+ const inversify_config_1 = require("../../configs/inversify.config");
14
+ const monaco_page_objects_1 = require("monaco-page-objects");
15
+ const chai_1 = require("chai");
16
+ const GitUtil_1 = require("../../utils/vsc/GitUtil");
17
+ const CheCodeLocatorLoader_1 = require("../../pageobjects/ide/CheCodeLocatorLoader");
18
+ var WebDriverError = monaco_page_objects_1.error.WebDriverError;
19
+ const MochaHooks_1 = require("../MochaHooks");
20
+ const inversify_types_1 = require("../../configs/inversify.types");
21
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
22
+ const TestConstants_1 = require("../../constants/TestConstants");
23
+ const TimeoutConstants_1 = require("../../constants/TimeoutConstants");
24
+ const Logger_1 = require("../../utils/Logger");
25
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
26
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
27
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
28
+ const webCheCodeLocators = new CheCodeLocatorLoader_1.CheCodeLocatorLoader().webCheCodeLocators;
29
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
30
+ const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
31
+ const workspaces = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Workspaces);
32
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
33
+ suite(`Create a workspace via launching a factory from the ${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository without OAuth setup`, async function () {
34
+ let projectSection;
35
+ let scmProvider;
36
+ let rest;
37
+ let scmContextMenu;
38
+ const gitUtilCheCode = new GitUtil_1.GitUtil();
39
+ // test specific data
40
+ let numberOfCreatedWorkspaces = 0;
41
+ const timeToRefresh = 1500;
42
+ const changesToCommit = (new Date()).getTime().toString();
43
+ const fileToChange = 'Date.txt';
44
+ const pushItemLabel = 'Push';
45
+ const commitChangesButtonLabel = `Commit Changes on "${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}"`;
46
+ const refreshButtonLabel = 'Refresh';
47
+ const label = TestConstants_1.TestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
48
+ const testRepoProjectName = gitUtilCheCode.getProjectNameFromGitUrl(TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_URL);
49
+ const isPrivateRepo = TestConstants_1.TestConstants.TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO ? 'private' : 'public';
50
+ loginTests.loginIntoChe();
51
+ test('Get number of previously created workspaces', async function () {
52
+ await dashboard.clickWorkspacesButton();
53
+ await workspaces.waitPage();
54
+ numberOfCreatedWorkspaces = (await workspaces.getAllCreatedWorkspacesNames()).length;
55
+ });
56
+ test(`Navigate to the ${isPrivateRepo} repository factory URL`, async function () {
57
+ await browserTabsUtil.navigateTo(TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_URL());
58
+ });
59
+ if (TestConstants_1.TestConstants.TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO) {
60
+ test(`Check that workspace cannot be created without OAuth for ${isPrivateRepo} repo`, async function () {
61
+ await dashboard.waitLoader();
62
+ const loaderAlert = await dashboard.getLoaderAlert();
63
+ chai_1.expect(loaderAlert).contains('Failed to create the workspace')
64
+ .and.contains('Cause: Unsupported OAuth provider ');
65
+ });
66
+ test(`Check that workspace was not created`, async function () {
67
+ await dashboard.openDashboard();
68
+ await dashboard.clickWorkspacesButton();
69
+ await workspaces.waitPage();
70
+ const allCreatedWorkspacesNames = await workspaces.getAllCreatedWorkspacesNames();
71
+ chai_1.expect(allCreatedWorkspacesNames).has.length(numberOfCreatedWorkspaces);
72
+ });
73
+ loginTests.logoutFromChe();
74
+ }
75
+ else {
76
+ workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
77
+ test('Registering the running workspace', async function () {
78
+ MochaHooks_1.registerRunningWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
79
+ });
80
+ test('Wait the workspace readiness', async function () {
81
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
82
+ });
83
+ test('Check if a project folder has been created', async function () {
84
+ Logger_1.Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
85
+ projectSection = await new monaco_page_objects_1.SideBarView().getContent().getSection(testRepoProjectName);
86
+ });
87
+ test('Accept the project as a trusted one', async function () {
88
+ // click somewhere to trigger "Welcome Content" dialog
89
+ try {
90
+ await driverHelper.waitAndClick(webCheCodeLocators.Workbench.notificationItem);
91
+ }
92
+ catch (e) {
93
+ Logger_1.Logger.info(`Click on ${webCheCodeLocators.Workbench.notificationItem} to get "Welcome Content" dialog ${e}`);
94
+ }
95
+ // "Welcome Content" dialog can be shown before of after dialog with an error for private repo
96
+ try {
97
+ const buttonYesITrustTheAuthors = `Yes, I trust the authors`;
98
+ await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.text, TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
99
+ const welcomeContentDialog = new monaco_page_objects_1.ModalDialog();
100
+ Logger_1.Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
101
+ await welcomeContentDialog.pushButton(buttonYesITrustTheAuthors);
102
+ await driverHelper.waitDisappearance(webCheCodeLocators.WelcomeContent.text);
103
+ }
104
+ catch (e) {
105
+ Logger_1.Logger.info(`"Accept the project as a trusted one" dialog was not shown firstly for "${isPrivateRepo}"`);
106
+ if (!TestConstants_1.TestConstants.TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO) {
107
+ throw new WebDriverError(e);
108
+ }
109
+ }
110
+ });
111
+ test('Check if the project files were imported', async function () {
112
+ Logger_1.Logger.debug(`projectSection.findItem: find ${label}`);
113
+ const isFileImported = await projectSection.findItem(label);
114
+ // projectSection.findItem(label) can return undefined but test will goes on
115
+ chai_1.expect(isFileImported).not.eqls(undefined);
116
+ });
117
+ test('Make changes to the file', async function () {
118
+ Logger_1.Logger.debug(`projectSection.openItem: "${fileToChange}"`);
119
+ await projectSection.openItem(fileToChange);
120
+ const editor = await new monaco_page_objects_1.EditorView().openEditor(fileToChange);
121
+ await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
122
+ Logger_1.Logger.debug(`editor.clearText`);
123
+ await editor.clearText();
124
+ Logger_1.Logger.debug(`editor.typeTextAt: "${changesToCommit}"`);
125
+ await editor.typeTextAt(1, 1, changesToCommit);
126
+ });
127
+ test('Open a source control manager', async function () {
128
+ const viewSourceControl = `Source Control`;
129
+ const sourceControl = await new monaco_page_objects_1.ActivityBar().getViewControl(viewSourceControl);
130
+ Logger_1.Logger.debug(`sourceControl.openView: "${viewSourceControl}"`);
131
+ await sourceControl.openView();
132
+ const scmView = new monaco_page_objects_1.NewScmView();
133
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
134
+ [scmProvider, ...rest] = await scmView.getProviders();
135
+ Logger_1.Logger.debug(`scmView.getProviders: "${scmProvider}, ${scmProvider}"`);
136
+ });
137
+ test('Check if the changes is displayed in the source control manager', async function () {
138
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
139
+ await driverHelper.wait(timeToRefresh);
140
+ Logger_1.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 = await scmProvider.getChangeCount();
145
+ Logger_1.Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
146
+ chai_1.expect(changes).eql(1);
147
+ });
148
+ test('Stage the changes', async function () {
149
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
150
+ Logger_1.Logger.debug(`scmProvider.openMoreActions`);
151
+ scmContextMenu = await scmProvider.openMoreActions();
152
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.contextView);
153
+ Logger_1.Logger.debug(`scmContextMenu.select: "Changes" -> "Stage All Changes"`);
154
+ await scmContextMenu.select('Changes', 'Stage All Changes');
155
+ });
156
+ test('Commit the changes', async function () {
157
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel));
158
+ Logger_1.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_1.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 = await scmProvider.getChangeCount();
167
+ Logger_1.Logger.debug(`scmProvider.getChangeCount: number of changes is "${changes}"`);
168
+ chai_1.expect(changes).eql(0);
169
+ });
170
+ test('Push the changes', async function () {
171
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.actionConstructor(`Push 1 commits to origin/${TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_REPO_BRANCH}`));
172
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
173
+ Logger_1.Logger.debug(`scmProvider.openMoreActions`);
174
+ scmContextMenu = await scmProvider.openMoreActions();
175
+ await driverHelper.waitVisibility(webCheCodeLocators.ContextMenu.itemConstructor(pushItemLabel));
176
+ Logger_1.Logger.debug(`scmContextMenu.select: "${pushItemLabel}"`);
177
+ await scmContextMenu.select(pushItemLabel);
178
+ });
179
+ if (TestConstants_1.TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER === TestConstants_1.GitProviderType.GITHUB) {
180
+ test('Decline GitHub Extension', async function () {
181
+ await driverHelper.waitVisibility(webCheCodeLocators.Dialog.details);
182
+ const gitHaExtensionDialog = new monaco_page_objects_1.ModalDialog();
183
+ await gitHaExtensionDialog.pushButton('Cancel');
184
+ });
185
+ }
186
+ test('Insert git credentials which were asked after push', async function () {
187
+ await driverHelper.waitVisibility(webCheCodeLocators.ScmView.more);
188
+ try {
189
+ await driverHelper.waitVisibility(webCheCodeLocators.Input.inputBox);
190
+ }
191
+ catch (e) {
192
+ Logger_1.Logger.info(`Workspace did not ask credentials before push - ${e};
193
+ Known issue for github.com - https://issues.redhat.com/browse/CRW-4066`);
194
+ }
195
+ const input = new monaco_page_objects_1.InputBox();
196
+ await input.setText(TestConstants_1.TestConstants.TS_SELENIUM_GIT_PROVIDER_USERNAME);
197
+ await driverHelper.wait(timeToRefresh);
198
+ await input.confirm();
199
+ await driverHelper.wait(timeToRefresh);
200
+ await input.setText(TestConstants_1.TestConstants.TS_SELENIUM_GIT_PROVIDER_PASSWORD);
201
+ await input.confirm();
202
+ await driverHelper.wait(timeToRefresh);
203
+ });
204
+ test('Check if the changes were pushed', async function () {
205
+ try {
206
+ Logger_1.Logger.debug(`scmProvider.takeAction: "${refreshButtonLabel}"`);
207
+ await scmProvider.takeAction(refreshButtonLabel);
208
+ }
209
+ catch (e) {
210
+ Logger_1.Logger.info('Check you use correct credentials.' +
211
+ 'For bitbucket.org ensure you use an app password: https://support.atlassian.com/bitbucket-cloud/docs/using-app-passwords/;' +
212
+ 'For github.com - personal access token instead of password.');
213
+ }
214
+ const isCommitButtonDisabled = await driverHelper.waitAndGetElementAttribute(webCheCodeLocators.ScmView.actionConstructor(commitChangesButtonLabel), 'aria-disabled');
215
+ chai_1.expect(isCommitButtonDisabled).eql('true');
216
+ });
217
+ test(`Stop and remove the workspace`, async function () {
218
+ await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
219
+ });
220
+ loginTests.logoutFromChe();
221
+ }
222
+ suiteTeardown('Close the browser', async function () {
223
+ if (!TestConstants_1.TestConstants.TS_DEBUG_MODE) {
224
+ await driverHelper.getDriver().close();
225
+ }
226
+ });
227
+ });
228
+ //# sourceMappingURL=NoSetupRepoFactory.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoSetupRepoFactory.spec.js","sourceRoot":"","sources":["../../../specs/factory/NoSetupRepoFactory.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAExE,4BAA0B;AAC1B,qEAA8D;AAC9D,6DAe6B;AAC7B,+BAA8B;AAC9B,qDAAkD;AAClD,qFAAkF;AAClF,IAAO,cAAc,GAAG,2BAAK,CAAC,cAAc,CAAC;AAC7C,8CAAyD;AAEzD,mEAAwD;AACxD,uFAAoF;AAKpF,iEAA+E;AAC/E,uEAAoE;AACpE,+CAA4C;AAG5C,MAAM,eAAe,GAAoB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,eAAe,CAAC,CAAC;AACnF,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,kBAAkB,GAAa,IAAI,2CAAoB,EAAE,CAAC,kBAAkB,CAAC;AACnF,MAAM,YAAY,GAAiB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAC;AAC1E,MAAM,SAAS,GAAc,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,SAAS,CAAC,CAAC;AACjE,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;AACpE,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;AAEpE,KAAK,CAAC,uDAAuD,6BAAa,CAAC,gCAAgC,iCAAiC,EAAE,KAAK;IAE/I,IAAI,cAA2B,CAAC;IAChC,IAAI,WAA8B,CAAC;IACnC,IAAI,IAAyB,CAAC;IAC9B,IAAI,cAA2B,CAAC;IAChC,MAAM,cAAc,GAAY,IAAI,iBAAO,EAAE,CAAC;IAE9C,qBAAqB;IACrB,IAAI,yBAAyB,GAAW,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAW,IAAI,CAAC;IACnC,MAAM,eAAe,GAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IAClE,MAAM,YAAY,GAAW,UAAU,CAAC;IACxC,MAAM,aAAa,GAAW,MAAM,CAAC;IACrC,MAAM,wBAAwB,GAAW,sBAAsB,6BAAa,CAAC,mCAAmC,GAAG,CAAC;IACpH,MAAM,kBAAkB,GAAW,SAAS,CAAC;IAC7C,MAAM,KAAK,GAAW,6BAAa,CAAC,kCAAkC,CAAC;IACvE,MAAM,mBAAmB,GAAW,cAAc,CAAC,wBAAwB,CAAC,6BAAa,CAAC,gCAAgC,CAAC,CAAC;IAC5H,MAAM,aAAa,GAAW,6BAAa,CAAC,uCAAuC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3G,UAAU,CAAC,YAAY,EAAE,CAAC;IAE1B,IAAI,CAAC,6CAA6C,EAAE,KAAK;QACrD,MAAM,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACxC,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC5B,yBAAyB,GAAG,CAAC,MAAM,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,aAAa,yBAAyB,EAAE,KAAK;QACjE,MAAM,eAAe,CAAC,UAAU,CAAC,6BAAa,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAI,6BAAa,CAAC,uCAAuC,EAAE;QAEvD,IAAI,CAAC,4DAA4D,aAAa,OAAO,EAAE,KAAK;YACxF,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAW,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7D,aAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;iBACzD,GAAG,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK;YAC9C,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,yBAAyB,GAAa,MAAM,UAAU,CAAC,4BAA4B,EAAE,CAAC;YAC5F,aAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,aAAa,EAAE,CAAC;KAE9B;SAAM;QACH,sBAAsB,CAAC,mCAAmC,EAAE,CAAC;QAE7D,IAAI,CAAC,mCAAmC,EAAE,KAAK;YAC3C,qCAAwB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK;YACtC,MAAM,mBAAmB,CAAC,sCAAsC,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK;YACpD,eAAM,CAAC,KAAK,CAAC,kDAAkD,mBAAmB,EAAE,CAAC,CAAC;YACtF,cAAc,GAAG,MAAM,IAAI,iCAAW,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,mBAAwC,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK;YAC7C,sDAAsD;YACtD,IAAI;gBACA,MAAM,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;aAClF;YAAC,OAAO,CAAC,EAAE;gBACR,eAAM,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,oCAAoC,CAAW,EAAE,CAAC,CAAC;aAC3H;YACD,8FAA8F;YAC9F,IAAI;gBACA,MAAM,yBAAyB,GAAW,0BAA0B,CAAC;gBACrE,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,mCAAgB,CAAC,iCAAiC,CAAC,CAAC;gBAC9H,MAAM,oBAAoB,GAAgB,IAAI,iCAAW,EAAE,CAAC;gBAC5D,eAAM,CAAC,KAAK,CAAC,qCAAqC,yBAAyB,GAAG,CAAC,CAAC;gBAChF,MAAM,oBAAoB,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;gBACjE,MAAM,YAAY,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAChF;YAAC,OAAO,CAAC,EAAE;gBACR,eAAM,CAAC,IAAI,CAAC,2EAA2E,aAAa,GAAG,CAAC,CAAC;gBACzG,IAAI,CAAC,6BAAa,CAAC,uCAAuC,EAAE;oBACxD,MAAM,IAAI,cAAc,CAAC,CAAW,CAAC,CAAC;iBACzC;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK;YAClD,eAAM,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACvD,MAAM,cAAc,GAAyB,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClF,4EAA4E;YAC5E,aAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK;YAClC,eAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,GAAG,CAAC,CAAC;YAC3D,MAAM,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAe,MAAM,IAAI,gCAAU,EAAE,CAAC,UAAU,CAAC,YAAY,CAAe,CAAC;YACzF,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvE,eAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,eAAM,CAAC,KAAK,CAAC,uBAAuB,eAAe,GAAG,CAAC,CAAC;YACxD,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK;YACvC,MAAM,iBAAiB,GAAW,gBAAgB,CAAC;YACnD,MAAM,aAAa,GAAgB,MAAM,IAAI,iCAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;YAC5G,eAAM,CAAC,KAAK,CAAC,4BAA4B,iBAAiB,GAAG,CAAC,CAAC;YAC/D,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAe,IAAI,gCAAU,EAAE,CAAC;YAC7C,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC1G,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YACtD,eAAM,CAAC,KAAK,CAAC,0BAA0B,WAAW,KAAK,WAAW,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK;YACzE,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,eAAM,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,GAAG,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACjD,+CAA+C;YAC/C,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,OAAO,GAAW,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;YAC3D,eAAM,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,CAAC,CAAC;YAC9E,aAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,KAAK;YAC3B,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnE,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC5C,cAAc,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;YACrD,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9E,eAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACxE,MAAM,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,KAAK;YAC5B,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC1G,eAAM,CAAC,KAAK,CAAC,kDAAkD,eAAe,GAAG,CAAC,CAAC;YACnF,MAAM,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC;YAC7D,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,eAAM,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,GAAG,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACjD,+CAA+C;YAC/C,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,OAAO,GAAW,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;YAC3D,eAAM,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,CAAC,CAAC;YAC9E,aAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,KAAK;YAC1B,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,4BAA4B,6BAAa,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YACjK,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnE,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC5C,cAAc,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;YACrD,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;YACjG,eAAM,CAAC,KAAK,CAAC,2BAA2B,aAAa,GAAG,CAAC,CAAC;YAC1D,MAAM,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,6BAAa,CAAC,gCAAgC,KAAK,+BAAe,CAAC,MAAM,EAAE;YAC3E,IAAI,CAAC,0BAA0B,EAAE,KAAK;gBAClC,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrE,MAAM,oBAAoB,GAAgB,IAAI,iCAAW,EAAE,CAAC;gBAC5D,MAAM,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;SACN;QAED,IAAI,CAAC,oDAAoD,EAAE,KAAK;YAC5D,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnE,IAAI;gBACA,MAAM,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACxE;YAAC,OAAO,CAAC,EAAE;gBACR,eAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC;uFACO,CAAC,CAAC;aAC5E;YACD,MAAM,KAAK,GAAa,IAAI,8BAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC,OAAO,CAAC,6BAAa,CAAC,iCAAiC,CAAC,CAAC;YACrE,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,KAAK,CAAC,OAAO,CAAC,6BAAa,CAAC,iCAAiC,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,EAAE,KAAK;YAC1C,IAAI;gBACA,eAAM,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,GAAG,CAAC,CAAC;gBAChE,MAAM,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;aACpD;YAAC,OAAO,CAAC,EAAE;gBACR,eAAM,CAAC,IAAI,CAAC,oCAAoC;oBAC5C,4HAA4H;oBAC5H,6DAA6D,CAAC,CAAC;aACtE;YACD,MAAM,sBAAsB,GAAW,MAAM,YAAY,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,eAAe,CAAC,CAAC;YAC9K,aAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK;YACvC,MAAM,sBAAsB,CAAC,sBAAsB,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,aAAa,EAAE,CAAC;KAC9B;IAED,aAAa,CAAC,mBAAmB,EAAE,KAAK;QACpC,IAAI,CAAC,6BAAa,CAAC,aAAa,EAAE;YAC9B,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;SAC1C;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}