This is an automated email from the ASF dual-hosted git repository.

rantunes pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-tools-temporary-rnd-do-not-use.git

commit 77cd3177b5b2cbe732042062ea9b2c33874247dd
Author: Tomáš David <[email protected]>
AuthorDate: Mon Nov 6 14:10:28 2023 +0100

    KOGITO-9907: Enable to use GitHub token without logged in user (#2019)
---
 .../e2e-tests/tests/SwfFullScreenTest.ts           | 14 ++++++++++++++
 .../e2e-tests/tests/SwfTest.ts                     | 14 ++++++++++++++
 .../env/index.js                                   |  5 +++++
 .../src/framework/github-repo/GitHubRepoPage.ts    | 22 ++++++++++++++++++++++
 .../src/utils/tools/Clipboard.ts                   | 14 +++++++++++++-
 packages/chrome-extension/src/app/Dependencies.ts  |  3 +++
 .../src/app/components/common/Main.tsx             | 22 ++++++++++++++++------
 7 files changed, 87 insertions(+), 7 deletions(-)

diff --git 
a/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfFullScreenTest.ts
 
b/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfFullScreenTest.ts
index 45b0e8a096..d7a9abe4c6 100644
--- 
a/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfFullScreenTest.ts
+++ 
b/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfFullScreenTest.ts
@@ -20,14 +20,28 @@
 import SwfEditor from 
"@kie-tools/chrome-extension-test-helper/dist/framework/editor/swf/SwfEditor";
 import FullScreenPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/fullscreen-editor/FullScreenPage";
 import GitHubEditorPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-editor/GitHubEditorPage";
+import GitHubRepoPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-repo/GitHubRepoPage";
 import Tools from "@kie-tools/chrome-extension-test-helper/dist/utils/Tools";
 
+// @ts-ignore
+import { env } from "../../env";
+
 const TEST_NAME = "SwfFullScreenTest";
 
 let tools: Tools;
 
+const buildEnv: any = env;
+
 beforeEach(async () => {
   tools = await Tools.init(TEST_NAME);
+
+  if (buildEnv.swfChromeExtension.e2eTestingToken !== "") {
+    const gitHubRepoPage: GitHubRepoPage = await tools.openPage(
+      GitHubRepoPage,
+      "https://github.com/kiegroup/kie-tools";
+    );
+    await gitHubRepoPage.addToken(buildEnv.swfChromeExtension.e2eTestingToken);
+  }
 });
 
 test(TEST_NAME, async () => {
diff --git 
a/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfTest.ts
 
b/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfTest.ts
index 6590527d05..8870b26bf4 100644
--- 
a/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfTest.ts
+++ 
b/packages/chrome-extension-serverless-workflow-editor/e2e-tests/tests/SwfTest.ts
@@ -21,14 +21,28 @@ import Tools from 
"@kie-tools/chrome-extension-test-helper/dist/utils/Tools";
 import GitHubListItem from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-file-list/GitHubListItem";
 import GitHubListPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-file-list/GitHubListPage";
 import GitHubEditorPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-editor/GitHubEditorPage";
+import GitHubRepoPage from 
"@kie-tools/chrome-extension-test-helper/dist/framework/github-repo/GitHubRepoPage";
 import SwfEditor from 
"@kie-tools/chrome-extension-test-helper/dist/framework/editor/swf/SwfEditor";
 
+// @ts-ignore
+import { env } from "../../env";
+
 const TEST_NAME = "SwfTest";
 
 let tools: Tools;
 
+const buildEnv: any = env;
+
 beforeEach(async () => {
   tools = await Tools.init(TEST_NAME);
+
+  if (buildEnv.swfChromeExtension.e2eTestingToken !== "") {
+    const gitHubRepoPage: GitHubRepoPage = await tools.openPage(
+      GitHubRepoPage,
+      "https://github.com/kiegroup/kie-tools";
+    );
+    await gitHubRepoPage.addToken(buildEnv.swfChromeExtension.e2eTestingToken);
+  }
 });
 
 test(TEST_NAME, async () => {
diff --git a/packages/chrome-extension-serverless-workflow-editor/env/index.js 
b/packages/chrome-extension-serverless-workflow-editor/env/index.js
index 1e1d3ac4d8..565ac93dc8 100644
--- a/packages/chrome-extension-serverless-workflow-editor/env/index.js
+++ b/packages/chrome-extension-serverless-workflow-editor/env/index.js
@@ -33,6 +33,10 @@ module.exports = 
composeEnv([require("@kie-tools/root-env/env")], {
       default: "manifest.dev.json",
       description: "",
     },
+    SWF_CHROME_EXTENSION__e2eTestingToken: {
+      default: "",
+      description: "",
+    },
   }),
   get env() {
     return {
@@ -44,6 +48,7 @@ module.exports = 
composeEnv([require("@kie-tools/root-env/env")], {
         routerTargetOrigin: 
getOrDefault(this.vars.SWF_CHROME_EXTENSION__routerTargetOrigin),
         routerRelativePath: 
getOrDefault(this.vars.SWF_CHROME_EXTENSION__routerRelativePath),
         manifestFile: 
getOrDefault(this.vars.SWF_CHROME_EXTENSION__manifestFile),
+        e2eTestingToken: 
getOrDefault(this.vars.SWF_CHROME_EXTENSION__e2eTestingToken),
       },
     };
   },
diff --git 
a/packages/chrome-extension-test-helper/src/framework/github-repo/GitHubRepoPage.ts
 
b/packages/chrome-extension-test-helper/src/framework/github-repo/GitHubRepoPage.ts
new file mode 100644
index 0000000000..3c0d6563ef
--- /dev/null
+++ 
b/packages/chrome-extension-test-helper/src/framework/github-repo/GitHubRepoPage.ts
@@ -0,0 +1,22 @@
+import { By, Key } from "selenium-webdriver";
+import Page from "../Page";
+
+export default class GitHubRepoPage extends Page {
+  private static readonly TOKEN_ICON: By = By.className("kogito-menu-icon");
+  private static readonly TOKEN_INPUT: By = 
By.className("kogito-github-token-input");
+
+  public async waitUntilLoaded(): Promise<void> {
+    return await 
this.tools.by(GitHubRepoPage.TOKEN_ICON).wait(1000).untilPresent();
+  }
+
+  public async addToken(token: string): Promise<void> {
+    const tokenIcon = await 
this.tools.by(GitHubRepoPage.TOKEN_ICON).getElement();
+    await tokenIcon.click();
+    await this.tools.by(GitHubRepoPage.TOKEN_INPUT).wait(1000).untilPresent();
+    const tokenInput = await 
this.tools.by(GitHubRepoPage.TOKEN_INPUT).getElement();
+    await tokenInput.click();
+    await this.tools.clipboard().setContent(token);
+    await tokenInput.sendKeys(this.tools.clipboard().getCtrvKeys());
+    await this.tools.by(GitHubRepoPage.TOKEN_INPUT).wait(5000).untilAbsent();
+  }
+}
diff --git a/packages/chrome-extension-test-helper/src/utils/tools/Clipboard.ts 
b/packages/chrome-extension-test-helper/src/utils/tools/Clipboard.ts
index 6e924d3d0e..debe7d958b 100644
--- a/packages/chrome-extension-test-helper/src/utils/tools/Clipboard.ts
+++ b/packages/chrome-extension-test-helper/src/utils/tools/Clipboard.ts
@@ -35,6 +35,14 @@ export default class Clipboard {
     return await this.getTextFromHelperInput();
   }
 
+  /**
+   * Set the clipboard content.
+   * @param textToClipboard Text to set as the content of the clipboard.
+   */
+  public async setContent(textToClipboard: string): Promise<void> {
+    await this.driver.executeScript("navigator.clipboard.writeText('" + 
textToClipboard + "');");
+  }
+
   private async getTextFromHelperInput(): Promise<string> {
     const GET_TEXT_FROM_INPUT_CMD: string =
       "input=document.getElementById('copyPaste');" +
@@ -55,7 +63,11 @@ export default class Clipboard {
     );
   }
 
-  private getCtrvKeys(): string {
+  /**
+   * Return Ctrl + v command for specific OS.
+   * @returns Ctrl + v command.
+   */
+  public getCtrvKeys(): string {
     // "darwin" is  MacOS
     if (platform() === "darwin") {
       return Key.SHIFT + Key.INSERT;
diff --git a/packages/chrome-extension/src/app/Dependencies.ts 
b/packages/chrome-extension/src/app/Dependencies.ts
index 6e30849dfe..a77357e9d7 100644
--- a/packages/chrome-extension/src/app/Dependencies.ts
+++ b/packages/chrome-extension/src/app/Dependencies.ts
@@ -74,6 +74,9 @@ export class Dependencies {
       return (document.querySelector(".notification-indicator") ??
         document.querySelector(".AppHeader-search")) as HTMLElement | null;
     },
+    notLoggedInNotificationIndicator: () => {
+      return document.querySelector("#repository-details-container") as 
HTMLInputElement | null;
+    },
     body: () => {
       return document.body;
     },
diff --git a/packages/chrome-extension/src/app/components/common/Main.tsx 
b/packages/chrome-extension/src/app/components/common/Main.tsx
index bced2797f7..784aada68b 100644
--- a/packages/chrome-extension/src/app/components/common/Main.tsx
+++ b/packages/chrome-extension/src/app/components/common/Main.tsx
@@ -46,15 +46,25 @@ function KogitoMenuPortal(props: { id: string }) {
   const githubApi = useGitHubApi();
   const globals = useGlobals();
 
-  return (
-    <>
-      {githubApi.userIsLoggedIn() &&
-        ReactDOM.createPortal(
+  if (githubApi.userIsLoggedIn()) {
+    return (
+      <>
+        {ReactDOM.createPortal(
           <KogitoMenu />,
           kogitoMenuContainer(props.id, 
globals.dependencies.all.notificationIndicator()!.parentElement!)
         )}
-    </>
-  );
+      </>
+    );
+  } else {
+    return (
+      <>
+        {ReactDOM.createPortal(
+          <KogitoMenu />,
+          kogitoMenuContainer(props.id, 
globals.dependencies.all.notLoggedInNotificationIndicator()!)
+        )}
+      </>
+    );
+  }
 }
 
 export const Main: React.FunctionComponent<Globals> = (props) => {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to