Skip to content

Commit

Permalink
refactor invocation populate.spec.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
jomarko committed Sep 27, 2024
1 parent a502c64 commit 6833650
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { Locator } from "@playwright/test";
import { Monaco } from "../../__fixtures__/monaco";
import { ChildExpression } from "../expressionContainer";
import { NameAndDataTypeCell } from "../nameAndDataTypeCell";
import { ParameterDescriptionCell } from "../parameterDescriptionCell";

export class InvocationExpressionElement {
constructor(
Expand Down Expand Up @@ -102,7 +103,7 @@ class InvocationParameter {
}

get descriptionCell() {
return new NameAndDataTypeCell(this.locator.getByTestId(`kie-tools--bee--expression-column-1`).nth(0));
return new ParameterDescriptionCell(this.locator.getByTestId(`kie-tools--bee--expression-column-1`).nth(0));
}

get elementCell() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

import { Locator } from "@playwright/test";
import { ContextMenu } from "./expressionContainer";

export class ParameterDescriptionCell {
constructor(private locator: Locator) {}

public async open() {
await this.locator.nth(0).click();
}

public async getPopoverMenu() {
return this.locator.page().getByTestId("kie-tools--bee--expression-popover-menu");
}

public async setName({ name, commit = false }: { name: string; commit?: boolean }) {
await (await this.getPopoverMenu()).getByRole("textbox").fill(name);
if (commit) {
await (await this.getPopoverMenu()).getByRole("textbox").press("Enter");
}
}

public async setDataType({ dataType, commit = false }: { dataType: string; commit?: boolean }) {
const popoverMenu = await this.getPopoverMenu();
await popoverMenu.getByTestId("kie-tools--bee--edit-expression-data-type").click();
await popoverMenu.getByPlaceholder("Choose...").nth(0).fill(dataType);
await popoverMenu.getByRole("group").nth(0).getByRole("option").nth(0).click();
if (commit) {
await popoverMenu.page().keyboard.press("Enter");
}
}

public async getName() {
return await (await this.getPopoverMenu()).getByTestId("kie-tools--bee--expression-info-name").nth(0).innerText();
}

public async getDataType() {
return await (await this.getPopoverMenu())
.getByTestId("kie-tools--bee--expression-info-data-type")
.nth(0)
.innerText();
}

public async select() {
// Uses the 1,1 to avoid problems by clicking on the element corner
await this.content.click({ position: { x: 1, y: 1 } });
}

get content() {
return this.locator.nth(0);
}

get contextMenu() {
return new ContextMenu(this.locator);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,38 +40,28 @@ test.describe("Populate Boxed Invocation", () => {

await bee.expression.asInvocation().parameter(0).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(0).descriptionCell.open();
await page.getByPlaceholder("Expression Name").fill("Monthly income");
await page.getByLabel("<Undefined>").click();
await page.getByRole("option", { name: "number" }).click();
await page.keyboard.press("Enter");

await bee.expression.asInvocation().parameter(4).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(4).descriptionCell.open();
await page.getByPlaceholder("Expression Name").fill("Monthly repayments");
await page.getByLabel("<Undefined>").click();
await page.getByRole("option", { name: "number" }).click();
await page.keyboard.press("Enter");
await bee.expression.asInvocation().parameter(0).descriptionCell.setName({ name: "Monthly income" });
await bee.expression.asInvocation().parameter(0).descriptionCell.setDataType({ dataType: "number", commit: true });

await bee.expression.asInvocation().parameter(3).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(3).descriptionCell.open();
await page.getByPlaceholder("Expression Name").fill("Monthly expenses");
await page.getByLabel("<Undefined>").click();
await page.getByRole("option", { name: "number" }).click();
await page.keyboard.press("Enter");
await bee.expression.asInvocation().parameter(1).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(1).descriptionCell.open();
await bee.expression.asInvocation().parameter(1).descriptionCell.setName({ name: "Monthly repayments" });
await bee.expression.asInvocation().parameter(1).descriptionCell.setDataType({ dataType: "number", commit: true });

await bee.expression.asInvocation().parameter(2).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(2).descriptionCell.open();
await page.getByPlaceholder("Expression Name").fill("Risk category");
await page.getByLabel("<Undefined>").click();
await page.getByRole("option", { name: "number" }).click();
await page.keyboard.press("Enter");
await bee.expression.asInvocation().parameter(2).descriptionCell.setName({ name: "Monthly expenses" });
await bee.expression.asInvocation().parameter(2).descriptionCell.setDataType({ dataType: "number", commit: true });

await bee.expression.asInvocation().parameter(1).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(1).descriptionCell.open();
await page.getByPlaceholder("Expression Name").fill("Required monthly installment");
await page.getByLabel("<Undefined>").click();
await page.getByRole("option", { name: "number" }).click();
await page.keyboard.press("Enter");
await bee.expression.asInvocation().parameter(3).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(3).descriptionCell.open();
await bee.expression.asInvocation().parameter(3).descriptionCell.setName({ name: "Risk category" });
await bee.expression.asInvocation().parameter(3).descriptionCell.setDataType({ dataType: "number", commit: true });

await bee.expression.asInvocation().parameter(4).selectExpressionMenu.selectLiteral();
await bee.expression.asInvocation().parameter(4).descriptionCell.open();
await bee.expression.asInvocation().parameter(4).descriptionCell.setName({ name: "Required monthly installment" });
await bee.expression.asInvocation().parameter(4).descriptionCell.setDataType({ dataType: "number", commit: true });

await resizing.reset(page.getByRole("cell", { name: "Required monthly installment" }));

Expand Down

0 comments on commit 6833650

Please sign in to comment.