diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index 64c8ae5bcb93b331b0ebb41ac8377bfc3374fa63..ee185aaa7edf94f01e03acb3fcbfe63d09108acc 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -356,6 +356,17 @@ export class CalculatorPage { return style.indexOf("color: red;") !== -1; } + /** + * return true if the nth log entry is a warning + */ + async nthLogEntryIsWarning(n: number) { + const errs = await $$("log-entry"); + const e = errs[n]; + const icon = await e.$("div mat-icon"); + const style = await icon.getAttribute("style"); + return style.indexOf("color: orange;") !== -1; + } + async clickSaveCalcButton() { await scrollPageToTop(); return await $("#save-calc").click(); diff --git a/e2e/parallel-structures.e2e-spec.ts b/e2e/parallel-structures.e2e-spec.ts index 54ebb02952312ad799e8a46d01de02c1611f098a..d60f76076a9fe0079fde595d7049a3d43aaab9db 100644 --- a/e2e/parallel-structures.e2e-spec.ts +++ b/e2e/parallel-structures.e2e-spec.ts @@ -8,101 +8,102 @@ import { SideNav } from "./sidenav.po"; import { browser, $, $$, expect } from '@wdio/globals' describe("Parallel structures - ", () => { - let startPage: AppPage; - let listPage: ListPage; - let navBar: Navbar; - let calcPage: CalculatorPage; - let prefPage: PreferencesPage; - let sideNav: SideNav; + let startPage: AppPage; + let listPage: ListPage; + let navBar: Navbar; + let calcPage: CalculatorPage; + let prefPage: PreferencesPage; + let sideNav: SideNav; - beforeAll(() => { - startPage = new AppPage(); - listPage = new ListPage(); - navBar = new Navbar(); - calcPage = new CalculatorPage(); - prefPage = new PreferencesPage(); - sideNav = new SideNav(); - }); + beforeAll(() => { + startPage = new AppPage(); + listPage = new ListPage(); + navBar = new Navbar(); + calcPage = new CalculatorPage(); + prefPage = new PreferencesPage(); + sideNav = new SideNav(); + }); - beforeEach(async () => { - // disable evil option "empty fields on module creation" - await prefPage.navigateTo(); - await prefPage.disableEvilEmptyFields(); - await browser.pause(200); - }); + beforeEach(async () => { + // disable evil option "empty fields on module creation" + await prefPage.navigateTo(); + await prefPage.disableEvilEmptyFields(); + await browser.pause(200); + }); - it("check calculated parameter remains the same when copying a structure", async () => { - // open "fish ladder: cross walls" calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(10); - await browser.pause(200); + it("check calculated parameter remains the same when copying a structure", async () => { + // open "fish ladder: cross walls" calculator + await navBar.clickNewCalculatorButton(); + await browser.pause(200); + await listPage.clickMenuEntryForCalcType(10); + await browser.pause(200); - // check L in first structure calc toggle is not checked - const L1 = await calcPage.getInputById("0_L"); + // check L in first structure calc toggle is not checked + const L1 = await calcPage.getInputById("0_L"); - // const h11 = calcPage.getInputById("0_h1"); + // const h11 = calcPage.getInputById("0_h1"); - // set L to calculated in first structure - await calcPage.setParamMode(L1, "cal"); - await browser.pause(500); + // set L to calculated in first structure + await calcPage.setParamMode(L1, "cal"); + await browser.pause(500); - // check L calc toggle is checked - expect(await calcPage.inputIsInCalculatedMode(L1)).toBe(true); + // check L calc toggle is checked + expect(await calcPage.inputIsInCalculatedMode(L1)).toBe(true); - // copy 1st structure - const copyStruct = await calcPage.getCopyStructureButton(); + // copy 1st structure + const copyStruct = await calcPage.getCopyStructureButton(); - await browser.execute(e => { e.click() }, copyStruct); // await copyStruct.click() fails with "element not interactable" error - await browser.pause(200); + await browser.execute(e => { e.click() }, copyStruct); // await copyStruct.click() fails with "element not interactable" error + await browser.pause(200); - await calcPage.closeSnackBar(); - await browser.pause(200); + await calcPage.closeSnackBar(); + await browser.pause(200); - // check L in first structure is still in "calc" state - expect(await calcPage.inputIsInCalculatedMode(L1)).toBe(true); + // check L in first structure is still in "calc" state + expect(await calcPage.inputIsInCalculatedMode(L1)).toBe(true); - // // check L in second structure is still in "fix" state - const L2 = await calcPage.getInputById("1_L"); - expect(await calcPage.inputIsInFixedMode(L2)).toBe(true); - }); + // // check L in second structure is still in "fix" state + const L2 = await calcPage.getInputById("1_L"); + expect(await calcPage.inputIsInFixedMode(L2)).toBe(true); + }); - //TODO à réactiver après fusion de #618 dans devel - xit("check submergence error", async () => { - await startPage.navigateTo(); - await browser.pause(200); + it("check submergence error", async () => { + await startPage.navigateTo(); + await browser.pause(200); - await loadSession(navBar, sideNav, "./session/session-erreur-ennoiement-614.json"); - await browser.pause(1000); + await loadSession(navBar, sideNav, "./session/session-erreur-ennoiement-614.json"); + await browser.pause(1000); - // first calculator + // first calculator - await navBar.clickCalculatorTab(0); - await browser.pause(200); + await navBar.clickCalculatorTab(0); + await browser.pause(200); - // run calculation - let btnCalc = await calcPage.getCalculateButton(); - await btnCalc.click(); - await browser.pause(500); + // run calculation + let btnCalc = await calcPage.getCalculateButton(); + await btnCalc.click(); + await browser.pause(500); - // check error message in log - expect(await calcPage.nbLogEntries()).toBe(1); + // check error message in log + expect(await calcPage.nbLogEntries()).toBe(2); - expect(await calcPage.nthLogEntryIsError(0)).toBe(true); + expect(await calcPage.nthLogEntryIsWarning(0)).toBe(true); + expect(await calcPage.nthLogEntryIsError(1)).toBe(true); - // second calculator + // second calculator - await navBar.clickCalculatorTab(1); - await browser.pause(200); + await navBar.clickCalculatorTab(1); + await browser.pause(200); - // run calculation - btnCalc = await calcPage.getCalculateButton(); - await btnCalc.click(); - await browser.pause(500); + // run calculation + btnCalc = await calcPage.getCalculateButton(); + await btnCalc.click(); + await browser.pause(500); - // check error message in log - expect(await calcPage.nbLogEntries()).toBe(1); + // check error message in log + expect(await calcPage.nbLogEntries()).toBe(2); - expect(await calcPage.nthLogEntryIsError(0)).toBe(true); - }); + expect(await calcPage.nthLogEntryIsWarning(0)).toBe(true); + expect(await calcPage.nthLogEntryIsError(1)).toBe(true); + }); });