From 427bcb87f0ce7c29656c574bda6fef4cc1395b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr> Date: Mon, 6 Mar 2023 16:39:37 +0100 Subject: [PATCH] test(e2e): check all pressure loss fields are present for all laws refs #611 --- e2e/calculator.po.ts | 10 +++++ e2e/pressure-loss.e2e-spec.ts | 77 +++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 e2e/pressure-loss.e2e-spec.ts diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index f2b98b2d9..44930c8cc 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -90,6 +90,11 @@ export class CalculatorPage { return element(by.id(id)); } + async isMatSelectPresent(id: string) { + const sel: ElementFinder = element(by.css("mat-select#" + id)); + return await sel.isPresent(); + } + async getSelectValueText(select: ElementFinder) { return await select.element(by.css(".mat-select-value-text > span")).getText(); } @@ -176,6 +181,11 @@ export class CalculatorPage { return tr.element(by.css("td:nth-of-type(" + n + ")")); } + async isNgParamPresent(id: string) { + const inp: ElementFinder = element(by.css("ngparam-input input#" + id)); + return await inp.isPresent(); + } + async inputHasCalcModeButton(input: ElementFinder) { // get parent (div.container) const container = await this.findParentContainer(input); diff --git a/e2e/pressure-loss.e2e-spec.ts b/e2e/pressure-loss.e2e-spec.ts new file mode 100644 index 000000000..af37c218b --- /dev/null +++ b/e2e/pressure-loss.e2e-spec.ts @@ -0,0 +1,77 @@ +import { ListPage } from "./list.po"; +import { Navbar } from "./navbar.po"; +import { browser, by, element } from "protractor"; +import { CalculatorPage } from "./calculator.po"; +import { PreferencesPage } from "./preferences.po"; +import { changeSelectValue } from "./util.po"; + +describe("Pressure loss - ", () => { + let listPage: ListPage; + let navBar: Navbar; + let calcPage: CalculatorPage; + let prefPage: PreferencesPage; + + beforeAll(async () => { + listPage = new ListPage(); + navBar = new Navbar(); + calcPage = new CalculatorPage(); + prefPage = new PreferencesPage(); + }); + + beforeEach(async () => { + // enable evil option "empty fields on module creation" + await prefPage.navigateTo(); + await prefPage.disableEvilEmptyFields(); + await browser.sleep(200); + }); + + describe("modify pressure loss law displays the appropriate fields - ", () => { + it("Lechapt&Calmon", async () => { + // open "pressure loss" calculator + await navBar.clickNewCalculatorButton(); + await listPage.clickMenuEntryForCalcType(35); + await browser.sleep(200); + + // select Lechapt-Calmon pressure loss law + const materialSelect = calcPage.getSelectById("select_pressurelosstype"); + await changeSelectValue(materialSelect, 0); + await browser.sleep(200); + + // check inputs presence + expect(await calcPage.isNgParamPresent("Q")).toBe(true); + expect(await calcPage.isNgParamPresent("D")).toBe(true); + expect(await calcPage.isNgParamPresent("J")).toBe(true); // en calcul (donc id=calc_J mais ça marche quand même !) + expect(await calcPage.isNgParamPresent("Lg")).toBe(true); + expect(await calcPage.isNgParamPresent("Kloc")).toBe(true); + + // check material select + expect(await calcPage.isMatSelectPresent("select_material")).toBe(true); + }); + + it("Strickler", async () => { + browser.manage().window().setPosition(2000, 30); + + // open "pressure loss" calculator + await navBar.clickNewCalculatorButton(); + await listPage.clickMenuEntryForCalcType(35); + await browser.sleep(200); + + // select Strickler pressure loss law + const materialSelect = calcPage.getSelectById("select_pressurelosstype"); + await changeSelectValue(materialSelect, 1); + await browser.sleep(200); + debugger + + // check inputs presence + + const ks = element(by.id("0_Ks")); + expect(await ks.isPresent()).toBe(true); // isNgParamPresent does not work on "0_Ks". Why ? Mystery... + + expect(await calcPage.isNgParamPresent("Q")).toBe(true); + expect(await calcPage.isNgParamPresent("D")).toBe(true); + expect(await calcPage.isNgParamPresent("J")).toBe(true); + expect(await calcPage.isNgParamPresent("Lg")).toBe(true); + expect(await calcPage.isNgParamPresent("Kloc")).toBe(true); + }); + }); +}); -- GitLab