This is an automated email from the ASF dual-hosted git repository. porcelli pushed a commit to branch KOGITO-8015-feature-preview in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools-temporary-rnd-do-not-use.git
commit 1e1e5ebb9a31be388be78dd94a32426cf1214bdf Author: Fabrizio Antonangeli <[email protected]> AuthorDate: Tue May 23 21:51:41 2023 +0200 KOGITO-8475: Adapt existing integration tests with new UI (#1661) --- .../it-tests/e2e/CreateNewFile.cy.ts | 2 +- .../it-tests/e2e/RecentModel.cy.ts | 27 ++++++++-------------- .../it-tests/support/commands.ts | 16 +++++++++++++ .../it-tests/support/e2e.ts | 9 ++++++++ packages/serverless-logic-web-tools/package.json | 3 +-- .../src/homepage/overView/NewModelCard.tsx | 2 +- .../src/homepage/overView/Overview.tsx | 2 +- .../src/homepage/pageTemplate/OnlineEditorPage.tsx | 4 +++- .../src/homepage/uiNav/HomePageNav.tsx | 15 ++++++++++-- 9 files changed, 55 insertions(+), 25 deletions(-) diff --git a/packages/serverless-logic-web-tools/it-tests/e2e/CreateNewFile.cy.ts b/packages/serverless-logic-web-tools/it-tests/e2e/CreateNewFile.cy.ts index 69906ae52f..fc0202a150 100644 --- a/packages/serverless-logic-web-tools/it-tests/e2e/CreateNewFile.cy.ts +++ b/packages/serverless-logic-web-tools/it-tests/e2e/CreateNewFile.cy.ts @@ -28,7 +28,7 @@ describe("Serverless Logic Web Tools - Create and edit test", () => { cy.ouia({ ouiaId: "new-yard.yaml-button" }).should("have.text", "YAML"); cy.ouia({ ouiaId: "Dashboard-card" }).find("button").should("have.length", 1); - cy.ouia({ ouiaId: "new-dash.yaml-button" }).should("have.text", "New Dashboard"); + cy.ouia({ ouiaId: "new-dash.yaml-button" }).should("have.text", "YAML"); }); it("should create a new JSON serverless workflow", () => { diff --git a/packages/serverless-logic-web-tools/it-tests/e2e/RecentModel.cy.ts b/packages/serverless-logic-web-tools/it-tests/e2e/RecentModel.cy.ts index 828904b575..55e6302268 100644 --- a/packages/serverless-logic-web-tools/it-tests/e2e/RecentModel.cy.ts +++ b/packages/serverless-logic-web-tools/it-tests/e2e/RecentModel.cy.ts @@ -13,8 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { deleteAllIndexedDBs } from "../support/e2e"; + describe("Serverless Logic Web Tools - Recent model test", () => { beforeEach(() => { + deleteAllIndexedDBs(); cy.visit("/"); }); @@ -39,8 +42,10 @@ describe("Serverless Logic Web Tools - Recent model test", () => { // open again from main page cy.ouia({ ouiaId: "app-title" }).click(); - cy.ouia({ ouiaId: "recent-models-section" }) - .find("article h3") + cy.goToSidebarLink({ ouiaId: "recent-models-nav" }); + + cy.ouia({ ouiaId: "OUIA-Generated-TableRow-2" }) + .find("[data-label='Name'] > a") .eq(0) .should(($item) => expect($item.text().trim()).equal("testJsonFile")) .click(); @@ -56,20 +61,8 @@ describe("Serverless Logic Web Tools - Recent model test", () => { cy.ouia({ ouiaId: "kebab-sm" }).click(); cy.ouia({ ouiaId: "delete-file-button" }).click(); - // check the file is deleted (recent section is emtpy or the first item is not the file) - // cypress currently does not allow to clean browser db - cy.ouia({ ouiaId: "recent-models-section-body" }) - .children() - .then(($div) => { - if ($div.hasClass("pf-l-bullseye")) { - cy.ouia({ ouiaId: "empty-recent-models-title" }).should("have.text", "Nothing here"); - } else { - cy.ouia({ ouiaId: "recent-models-section" }) - .find("article h3") - .eq(0) - .should(($item) => expect($item.text().trim()).not.equal("testJsonFile")) - .click(); - } - }); + // check the file is deleted (recent section is emtpy) + cy.goToSidebarLink({ ouiaId: "recent-models-nav" }); + cy.get(".pf-l-bullseye").should("contain.text", "Nothing here"); }); }); diff --git a/packages/serverless-logic-web-tools/it-tests/support/commands.ts b/packages/serverless-logic-web-tools/it-tests/support/commands.ts index fce89fa5be..9010d4aa90 100644 --- a/packages/serverless-logic-web-tools/it-tests/support/commands.ts +++ b/packages/serverless-logic-web-tools/it-tests/support/commands.ts @@ -39,6 +39,12 @@ declare namespace Cypress { * @param opts optional - config object */ ouia<S = any>(locator: { ouiaType?: string; ouiaId?: string }, opts?: Record<string, any>): Chainable<S>; + + /** + * Go to a link in the sidebar menu + * @param locator component id according to OUIA specification + */ + goToSidebarLink(locator: { ouiaId: string }): void; } } @@ -85,3 +91,13 @@ Cypress.Commands.add("ouia", { prevSubject: "optional" }, (subject, locator, opt cy.get(selector, options); } }); + +Cypress.Commands.add("goToSidebarLink", { prevSubject: false }, (locator) => { + cy.get("#page-sidebar").then((pageSidebar) => { + if (!pageSidebar.is(":visible")) { + cy.get("#nav-toggle").click(); + } + cy.ouia({ ouiaId: locator.ouiaId }).click(); + cy.get("#nav-toggle").click(); + }); +}); diff --git a/packages/serverless-logic-web-tools/it-tests/support/e2e.ts b/packages/serverless-logic-web-tools/it-tests/support/e2e.ts index 7ae78aa6e8..a96aa28cc6 100644 --- a/packages/serverless-logic-web-tools/it-tests/support/e2e.ts +++ b/packages/serverless-logic-web-tools/it-tests/support/e2e.ts @@ -23,3 +23,12 @@ Cypress.on("uncaught:exception", (err, runnable) => { // failing the test return false; }); + +/** + * Delete all indexed DBs + */ +export const deleteAllIndexedDBs = async () => { + Promise.all( + (await indexedDB.databases()).filter((db) => db.name).map(async (db) => indexedDB.deleteDatabase(db.name!)) + ); +}; diff --git a/packages/serverless-logic-web-tools/package.json b/packages/serverless-logic-web-tools/package.json index a37ebbafa6..b80490fa23 100644 --- a/packages/serverless-logic-web-tools/package.json +++ b/packages/serverless-logic-web-tools/package.json @@ -16,10 +16,9 @@ "main": "dist/index.js", "scripts": { "build:dev": "rimraf dist && webpack --env dev", - "build:prod": "pnpm lint && pnpm test && rimraf dist && webpack", + "build:prod": "pnpm lint && pnpm test && rimraf dist && webpack && pnpm test:it", "cy:open": "cypress open --project it-tests --config baseUrl=$(build-env serverlessLogicWebTools.dev.cypressUrl)", "cy:run": "cypress run --headed -b chrome --project it-tests --config baseUrl=$(build-env serverlessLogicWebTools.dev.cypressUrl)", - "format": "prettier --write './src/**/*.{tsx,ts,js}'", "lint": "run-script-if --bool \"$(build-env linters.run)\" --then \"kie-tools--eslint ./src\"", "postreport": "jrm ./dist-it-tests/junit-transformed.xml \"./dist-it-tests/junit-report*.xml\"", "start": "webpack serve --host 0.0.0.0 --env dev", diff --git a/packages/serverless-logic-web-tools/src/homepage/overView/NewModelCard.tsx b/packages/serverless-logic-web-tools/src/homepage/overView/NewModelCard.tsx index a9ac11041a..6fb9833fd5 100644 --- a/packages/serverless-logic-web-tools/src/homepage/overView/NewModelCard.tsx +++ b/packages/serverless-logic-web-tools/src/homepage/overView/NewModelCard.tsx @@ -40,7 +40,7 @@ export function NewModelCard(props: { return ( <GridItem sm={12} md={4}> - <Card isFullHeight={true} isPlain={true} isCompact={true}> + <Card isFullHeight={true} isPlain={true} isCompact={true} ouiaId={`${props.title}-card`}> <CardTitle> <FileLabel style={{ fontSize: "0.6em" }} extension={(jsonExtension || yamlExtension)!} /> </CardTitle> diff --git a/packages/serverless-logic-web-tools/src/homepage/overView/Overview.tsx b/packages/serverless-logic-web-tools/src/homepage/overView/Overview.tsx index 62f2bc857e..b7f2758749 100644 --- a/packages/serverless-logic-web-tools/src/homepage/overView/Overview.tsx +++ b/packages/serverless-logic-web-tools/src/homepage/overView/Overview.tsx @@ -149,7 +149,7 @@ export function Overview(props: { isNavOpen: boolean }) { /> <NewModelCard title={"Dashboard"} - yamlExtension={FileTypes.DASH_YML} + yamlExtension={FileTypes.DASH_YAML} description={"Define data visualization from data extracted from applications."} /> </Grid> diff --git a/packages/serverless-logic-web-tools/src/homepage/pageTemplate/OnlineEditorPage.tsx b/packages/serverless-logic-web-tools/src/homepage/pageTemplate/OnlineEditorPage.tsx index 733cf4dd84..e4b162b10b 100644 --- a/packages/serverless-logic-web-tools/src/homepage/pageTemplate/OnlineEditorPage.tsx +++ b/packages/serverless-logic-web-tools/src/homepage/pageTemplate/OnlineEditorPage.tsx @@ -125,7 +125,9 @@ export function OnlineEditorPage(props: OnlineEditorPageProps) { style={{ textDecoration: "none" }} > <Brand className="kogito-tools-common--brand" src="favicon.svg" alt="Kie logo"></Brand> - <div className="brand-name">{APP_NAME}</div> + <div className="brand-name" data-ouia-component-id="app-title"> + {APP_NAME} + </div> </MastheadBrand> </MastheadMain> <MastheadContent>{headerToolbar}</MastheadContent> diff --git a/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx b/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx index dca5bfeac4..f5c665beb0 100644 --- a/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx +++ b/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx @@ -26,7 +26,12 @@ export function HomePageNav(props: { pathname: string }) { <> <Nav aria-label="Global NAV" theme="dark"> <NavList> - <NavItem itemId={0} key={"Overview-nav"} isActive={props.pathname === routes.home.path({})}> + <NavItem + itemId={0} + key={"Overview-nav"} + isActive={props.pathname === routes.home.path({})} + ouiaId="overview-nav" + > <Link to={routes.home.path({})}>Overview</Link> </NavItem> @@ -38,11 +43,17 @@ export function HomePageNav(props: { pathname: string }) { matchPath(props.pathname, { path: routes.workspaceWithFiles.path({ workspaceId: ":workspaceId" }) }) ?.isExact } + ouiaId="recent-models-nav" > <Link to={routes.recentModels.path({})}>Recent Models</Link> </NavItem> - <NavItem itemId={2} key={"SampleCatalog-nav"} isActive={props.pathname === routes.sampleCatalog.path({})}> + <NavItem + itemId={2} + key={"SampleCatalog-nav"} + isActive={props.pathname === routes.sampleCatalog.path({})} + ouiaId="samples-catalog-nav" + > <Link to={routes.sampleCatalog.path({})}>Sample Catalog</Link> </NavItem> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
