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]
