Skip to content
Snippets Groups Projects
Commit e54991fb authored by François Grand's avatar François Grand
Browse files

fix(e2e): parallel structure submergence warning is also displayed along with submergence error

refs #614
parent 2d06e14f
No related branches found
No related tags found
2 merge requests!225Release v4.17.0,!216Resolve "Structure: Ajouter une erreur sur l'ennoiement"
......@@ -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();
......
......@@ -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);
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment