diff --git a/e2e/app.po.ts b/e2e/app.po.ts index 494a18afda40ef99f8b55a3e8bb03f22fa5a7367..8e2605b744729eae248a6994e30e7cf572a0e3cd 100644 --- a/e2e/app.po.ts +++ b/e2e/app.po.ts @@ -1,3 +1,5 @@ +import { browser } from '@wdio/globals' + export class AppPage { navigateTo() { return browser.url("/"); diff --git a/e2e/bief-empty-fields.e2e-spec.ts b/e2e/bief-empty-fields.e2e-spec.ts index a828ffc0bfe22393b694ead22e03c28823a5c401..1ad63832e6a89ae56babd8cb9a4110f4ad0f3cbf 100644 --- a/e2e/bief-empty-fields.e2e-spec.ts +++ b/e2e/bief-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check fields are empty in 'up/downstream elevations of a reach' calculator when created with 'empty fields' option", () => { let listPage: ListPage; @@ -26,9 +27,7 @@ describe("Check fields are empty in 'up/downstream elevations of a reach' calcul it("", async () => { // open "up/downstream elevations of a reach" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(21); - await browser.pause(200); + await openCalculator(21, navBar, listPage); await calcPage.checkEmptyOrFilledFields(["LargeurBerge", "Ks", "Long", "YB", "ZF1", "ZF2", "Q", "Z1", "Z2", "Dx"], [true, true, true, true, true, true, true, true, true, true]) diff --git a/e2e/calculate-button-validation.e2e-spec.ts b/e2e/calculate-button-validation.e2e-spec.ts index 537b49f304d07949ccfba93a4d6173007805dac9..4ba0b00b2a95d9544607e2ea93b99dbc983550a0 100644 --- a/e2e/calculate-button-validation.e2e-spec.ts +++ b/e2e/calculate-button-validation.e2e-spec.ts @@ -3,6 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Calculate button - ", () => { let listPage: ListPage; @@ -25,21 +26,11 @@ describe("Calculate button - ", () => { }); it("check button status only depends on calculator (no link between calculators)", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open PAB: chute calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); - - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // open PAB: dimensions - await listPage.clickMenuEntryForCalcType(5); - await browser.pause(200); + await openCalculator(5, navBar, listPage); // fill width field with invalid data const inputW = await calcPage.getInputById("W"); @@ -68,13 +59,8 @@ describe("Calculate button - ", () => { describe("check button status in prébarrages - ", () => { it("invalid data in Q input", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open prébarrages calculator - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // Q input const inputQ = await $("#Q"); @@ -94,13 +80,8 @@ describe("Calculate button - ", () => { }); it("add basin, invalid data in Q input", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open prébarrages calculator - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // "add basin" button const addBasinBtn = await $("#add-basin"); @@ -141,9 +122,7 @@ describe("Calculate button - ", () => { async function checkCalculateButtonValidity(calcType: number) { // open calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(calcType); - await browser.pause(200); + await openCalculator(calcType, navBar, listPage); // for each input, set empty and check calculate button is not active diff --git a/e2e/calculate-linked-params.e2e-spec.ts b/e2e/calculate-linked-params.e2e-spec.ts index 2f998ebd45153f719b7eeee0743bdebb1817640f..5a5306f41d3e805e528bfcb5c144b37f9a25aae1 100644 --- a/e2e/calculate-linked-params.e2e-spec.ts +++ b/e2e/calculate-linked-params.e2e-spec.ts @@ -3,7 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue, loadSession, newSession } from "./util.po"; +import { changeSelectValue, loadSession, newSession, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -59,12 +59,11 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single parameter", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y, "link"); @@ -76,12 +75,11 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single parameter, plus local variated parameter", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y, "link"); @@ -96,15 +94,15 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a variated parameter", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); + // vary Y const Y1 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y1, "var"); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y2 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y2, "link"); @@ -116,15 +114,15 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single result", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); + // calculate Y const Y1 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y1, "cal"); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y2 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y2, "link"); @@ -136,15 +134,15 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single result, plus local variated parameter", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); + // calculate Y const Y1 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y1, "cal"); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y2 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y2, "link"); @@ -159,8 +157,8 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a variated result", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); + // vary Q const Q = await calcPage.getInputById("Q"); await calcPage.setParamMode(Q, "var"); @@ -169,8 +167,8 @@ describe("ngHyd − calculate with linked parameters", () => { await calcPage.setParamMode(Y1, "cal"); // create a PAB : dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + // link Y to Y (R uniforme) const Y2 = await calcPage.getInputById("Y"); await calcPage.setParamMode(Y2, "link"); @@ -182,12 +180,11 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single extra result", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); // create a Jet - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(18); + await openCalculator(18, navBar, listPage); + // link V0 to V (Régime uniforme) const V0 = await calcPage.getInputById("V0"); await calcPage.setParamMode(V0, "link"); @@ -197,12 +194,11 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a single extra result, plus local variated parameter", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); // create a Jet - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(18); + await openCalculator(18, navBar, listPage); + // link V0 to V (Régime uniforme) const V0 = await calcPage.getInputById("V0"); await calcPage.setParamMode(V0, "link"); @@ -215,15 +211,15 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − direct links : parameter linked to a variated extra result", async () => { // create a Régime uniforme - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); + await openCalculator(3, navBar, listPage); + // vary LargeurBerge const LargeurBerge = await calcPage.getInputById("LargeurBerge"); await calcPage.setParamMode(LargeurBerge, "var"); // create a Jet - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(18); + await openCalculator(18, navBar, listPage); + // link V0 to V (Régime uniforme) const V0 = await calcPage.getInputById("V0"); await calcPage.setParamMode(V0, "link"); @@ -309,20 +305,14 @@ describe("ngHyd − calculate with linked parameters", () => { it(" − a link target parameter should not be able to link to another parameter", async () => { // create 1st PAB-Chute - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // upstream water level should not have link mode (only one calculator) const Z1_1 = await calcPage.getInputById("Z1"); expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(false); // create 2nd PAB-Chute - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // back to 1st calculator await navBar.clickCalculatorTab(0); diff --git a/e2e/check-translations.e2e-spec.ts b/e2e/check-translations.e2e-spec.ts index 97f01714a72cd2ba261eac52a2190d5a05925c27..7921b6116c8ebe3cb81a83b24765c7454ab4266d 100644 --- a/e2e/check-translations.e2e-spec.ts +++ b/e2e/check-translations.e2e-spec.ts @@ -5,6 +5,7 @@ import { PreferencesPage } from "./preferences.po"; import { SideNav } from "./sidenav.po"; import { testedCalcTypes } from "./tested_calctypes"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; /** * For all calculators, try to calculate every parameter: check that only one parameter @@ -63,7 +64,7 @@ describe("ngHyd − check translation of all calculators", () => { for (const ct of calcTypes) { it(" − check translations of calculator type [" + ct + "]", async () => { // click calculator button (instanciate) - await listPage.clickMenuEntryForCalcType(ct); + await openCalculator(ct, navBar, listPage); // just click the "compute" button with default values // check that "compute" button is active diff --git a/e2e/cloisons.e2e-spec.ts b/e2e/cloisons.e2e-spec.ts index b134960bfd240b05afadedcf7d3c30652146adbc..948a8103f88e3e5206bb9cdf2ae0c1206ba2d094 100644 --- a/e2e/cloisons.e2e-spec.ts +++ b/e2e/cloisons.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -29,11 +29,9 @@ describe("ngHyd − cloisons", () => { }); it("when all parent Nub parameters are linked, Structure parameter modes should be alterable without problem", async () => { - await navBar.clickNewCalculatorButton(); - // 1. create target module for linked parameters - await listPage.clickMenuEntryForCalcType(10); // Cloisons - await browser.pause(300); + await openCalculator(10, navBar, listPage); + // 2. create module to test await calcPage.clickCloneCalcButton(); await browser.pause(300); @@ -50,10 +48,10 @@ describe("ngHyd − cloisons", () => { // 4. change LoiDebit await changeSelectValue(await calcPage.getSelectById("select_loidebit"), 1); await browser.pause(300); - + // 5. check number of inputs in CALC mode expect(await calcPage.getCheckedCalcModeButtons().length).toBe(1); - + // 6. try calculating the module const btn = await calcPage.getCalculateButton() await btn.click(); diff --git a/e2e/clone-all-calc.e2e-spec.ts b/e2e/clone-all-calc.e2e-spec.ts index 290067e9a4001376fc817edac5627f395dad3232..91e0763fa0f37267a266c18e4512039def8eeae3 100644 --- a/e2e/clone-all-calc.e2e-spec.ts +++ b/e2e/clone-all-calc.e2e-spec.ts @@ -3,7 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { testedCalcTypes } from "./tested_calctypes"; -import { newSession, scrollPageToTop } from "./util.po"; +import { newSession, openCalculator, scrollPageToTop } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' import { SideNav } from "./sidenav.po"; @@ -49,8 +49,7 @@ describe("ngHyd − clone all calculators with all possible <select> values", () await newSession(navBar, sideNav); // click calculator button (instanciate) - await listPage.clickMenuEntryForCalcType(ct); - await browser.pause(200); + await openCalculator(ct, navBar, listPage); // get all select IDs outside Structures // get select IDs inside Structures diff --git a/e2e/clone-calc.e2e-spec.ts b/e2e/clone-calc.e2e-spec.ts index e6eff73a3478581468e3d6a5b9146b62a0ce829a..a6d425c3a1df5c12f3a9c0e273366c2c3fd05765 100644 --- a/e2e/clone-calc.e2e-spec.ts +++ b/e2e/clone-calc.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue, scrollPageToTop } from "./util.po"; +import { changeSelectValue, openCalculator, scrollPageToTop } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -11,14 +11,14 @@ import { browser, $, $$, expect } from '@wdio/globals' describe("ngHyd − clone a calculator", () => { let listPage: ListPage; let calcPage: CalculatorPage; - let navbar: Navbar; + let navBar: Navbar; let prefPage: PreferencesPage; beforeAll(async () => { listPage = new ListPage(); calcPage = new CalculatorPage(); prefPage = new PreferencesPage(); - navbar = new Navbar(); + navBar = new Navbar(); }); beforeEach(async () => { @@ -29,22 +29,17 @@ describe("ngHyd − clone a calculator", () => { }); it("when cloning a calculator, the clone should have the same values for all parameters", async () => { - await navbar.clickNewCalculatorButton(); // 1. create target modules for linked parameter - await listPage.clickMenuEntryForCalcType(3); // Régime uniforme - await browser.pause(500); + await openCalculator(3, navBar, listPage); + const debitRU = await calcPage.getInputById("calc_Q"); // "Débit" is calculated by default await calcPage.setParamMode(debitRU, "fix"); await browser.pause(500); - await navbar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(4); // Courbe de remous - await browser.pause(500); + await openCalculator(4, navBar, listPage); // 2. create source module to clone - await navbar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(2); // Section paramétrée - await browser.pause(500); + await openCalculator(2, navBar, listPage); // 3. change and store source parameter values const sourceValues = { @@ -71,8 +66,8 @@ describe("ngHyd − clone a calculator", () => { await browser.pause(500); // 4. check existence of the cloned module - expect(await navbar.getAllCalculatorTabs().length).toBe(4); - await navbar.clickCalculatorTab(3); // n°3 should be the latest + expect(await navBar.getAllCalculatorTabs().length).toBe(4); + await navBar.clickCalculatorTab(3); // n°3 should be the latest await browser.pause(500); // 5. compare values diff --git a/e2e/cote-amont-aval-bief.e2e-spec.ts b/e2e/cote-amont-aval-bief.e2e-spec.ts index 4e2521c53a33ccd0cfd54ccd0ff1ee10ac58603a..a4788ee9b1fb1f4de5f38bb456eb7c55a4d4343d 100644 --- a/e2e/cote-amont-aval-bief.e2e-spec.ts +++ b/e2e/cote-amont-aval-bief.e2e-spec.ts @@ -3,7 +3,7 @@ import { Navbar } from "./navbar.po"; import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { browser, $, $$, expect } from '@wdio/globals' -import { newSession } from "./util.po"; +import { newSession, openCalculator } from "./util.po"; import { SideNav } from "./sidenav.po"; describe("ngHyd − up/downstream elevations of a reach", () => { @@ -31,10 +31,7 @@ describe("ngHyd − up/downstream elevations of a reach", () => { it("check hydraulic details availability - flow calculation", async () => { // open "up/downstream elevations of a reach" calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(21); - await browser.pause(200); + await openCalculator(21, navBar, listPage); // set upstream flow in calculate mode const flowCalcBtn = await $( @@ -84,9 +81,7 @@ describe("ngHyd − up/downstream elevations of a reach", () => { await newSession(navBar, sideNav); // open "up/downstream elevations of a reach" calculator - // await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(21); - await browser.pause(200); + await openCalculator(21, navBar, listPage); // check details buttons status const upDetailsBtn = await $("#generate-sp-aval"); diff --git a/e2e/courbe-remous-empty-fields.e2e-spec.ts b/e2e/courbe-remous-empty-fields.e2e-spec.ts index 39a08fd4c5ac6fb89200a4df93ba2280eb1abc88..e393d7e8499ee73ba84678c9edb493ccd8cb5f41 100644 --- a/e2e/courbe-remous-empty-fields.e2e-spec.ts +++ b/e2e/courbe-remous-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check fields are empty in 'backwater curves' calculator when created with 'empty fields' option", () => { let listPage: ListPage; @@ -26,9 +27,7 @@ describe("Check fields are empty in 'backwater curves' calculator when created w it("", async () => { // open "backwater curves" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(4); - await browser.pause(200); + await openCalculator(4, navBar, listPage); await calcPage.checkEmptyOrFilledFields(["LargeurBerge", "Ks", "Long", "YB", "ZF1", "ZF2", "Q", "Z1", "Z2", "Dx"], [true, true, true, true, true, true, true, true, true, true]); diff --git a/e2e/diagramme-modules.e2e-spec.ts b/e2e/diagramme-modules.e2e-spec.ts index 5d2adae7f74da96e95e05d4beb90afbdfb21453c..ab65b0149556a8207dcfed36c30c643b7e6c4bdd 100644 --- a/e2e/diagramme-modules.e2e-spec.ts +++ b/e2e/diagramme-modules.e2e-spec.ts @@ -3,6 +3,7 @@ import { ListPage } from "./list.po"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; /** * convert Mermaid formatted id ("flowchat-id-xx") to id @@ -38,9 +39,7 @@ describe("modules diagram", () => { //browser.manage().window().setPosition(2000, 30); // open predam calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // open modules diagram await navBar.clickMenuButton(); diff --git a/e2e/documentation.e2e-spec.ts b/e2e/documentation.e2e-spec.ts index 39ae0c60f025163f8c826bd5b5d6aab464b97ef4..9f1ba6935d85127c6052815ecd74810d17256bad 100644 --- a/e2e/documentation.e2e-spec.ts +++ b/e2e/documentation.e2e-spec.ts @@ -3,6 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("documentation − ", () => { let listPage: ListPage; @@ -26,13 +27,8 @@ describe("documentation − ", () => { await prefPage.changeLanguage(lang); await browser.pause(200); - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open "fish ladder: fall" calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // click help await calcPage.getCalculatorHelpButton().click(); diff --git a/e2e/duplicate-results.e2e-spec.ts b/e2e/duplicate-results.e2e-spec.ts index ae36dcc5414fd8d58c3d37d83aa878ba75e56fcc..f9f58b730fe3ef870fbc278e4e7f22b5ff73c047 100644 --- a/e2e/duplicate-results.e2e-spec.ts +++ b/e2e/duplicate-results.e2e-spec.ts @@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po"; import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("ngHyd − check that results are not duplicated", () => { let prefPage: PreferencesPage; @@ -27,9 +28,7 @@ describe("ngHyd − check that results are not duplicated", () => { it("in 'baffle fishway: setup' calculator", async () => { // open baffle fishway setup calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(28); - await browser.pause(200); + await openCalculator(28, navBar, listPage); // run calculation const calcButton = await calcPage.getCalculateButton(); diff --git a/e2e/lechapt-calmon.e2e-spec.ts b/e2e/lechapt-calmon.e2e-spec.ts index 3d4eaf9b90f5e739f9336df426d5f31cccc6fd3e..1be7ef7ba17a2ed3af25a26c67770b08970b0cfd 100644 --- a/e2e/lechapt-calmon.e2e-spec.ts +++ b/e2e/lechapt-calmon.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { Navbar } from "./navbar.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -31,13 +31,8 @@ describe("Lechapt&Calmon - ", () => { }); async function setup() { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open Lechapt-Calmon (pressure loss) calculator - await listPage.clickMenuEntryForCalcType(35); - await browser.pause(200); + await openCalculator(35, navBar, listPage); } it("when material is modified, results should change", async () => { diff --git a/e2e/link-parallel-devices.e2e-spec.ts b/e2e/link-parallel-devices.e2e-spec.ts index 5bae9aa32ad4168954a5f71e71516edd8edffedd..97a1b8c9d349d45ec1cd4c33e702b6b191a223ef 100644 --- a/e2e/link-parallel-devices.e2e-spec.ts +++ b/e2e/link-parallel-devices.e2e-spec.ts @@ -3,7 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { Navbar } from "./navbar.po"; import { browser, $, $$, expect } from '@wdio/globals' -import { newSession } from "./util.po"; +import { newSession, openCalculator } from "./util.po"; import { SideNav } from "./sidenav.po"; describe("ngHyd − parallel structures with multiple linked parameters − ", () => { @@ -29,31 +29,30 @@ describe("ngHyd − parallel structures with multiple linked parameters − ", ( }); it("when creating Parallel Structures, devices should be linkable to one another", async () => { - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(8); - await browser.pause(200); + await openCalculator(8, navBar, listPage); + const addBtn = await calcPage.getAddStructureButton(); await addBtn.click(); await browser.pause(200); const nb1 = await calcPage.getAllLinkButtons().length; expect(nb1).toBe(8); // link buttons on children but not on parent }); - + it("when creating Cloisons, devices should be linkable to one another", async () => { await newSession(navBar, sideNav); - await listPage.clickMenuEntryForCalcType(10); - await browser.pause(200); + await openCalculator(10, navBar, listPage); + const addBtn = await calcPage.getAddStructureButton(); await addBtn.click(); await browser.pause(200); const nb2 = await calcPage.getAllLinkButtons().length; expect(nb2).toBe(6); // link buttons on children but not on parent }); - + it("when creating Dever, devices should be linkable to one another", async () => { await newSession(navBar, sideNav); - await listPage.clickMenuEntryForCalcType(9); - await browser.pause(200); + await openCalculator(9, navBar, listPage); + const addBtn = await calcPage.getAddStructureButton(); await addBtn.click(); await browser.pause(200); diff --git a/e2e/link-to-deleted-module.e2e-spec.ts b/e2e/link-to-deleted-module.e2e-spec.ts index fe62a73bcf039b92bf1828087f6b85f5a38c62ba..85aeea4eeb6041c6370c89cbcda8833787bbab28 100644 --- a/e2e/link-to-deleted-module.e2e-spec.ts +++ b/e2e/link-to-deleted-module.e2e-spec.ts @@ -3,7 +3,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' -import { newSession } from "./util.po"; +import { newSession, openCalculator } from "./util.po"; import { SideNav } from "./sidenav.po"; describe("linked parameter - ", () => { @@ -64,8 +64,7 @@ describe("linked parameter - ", () => { await newSession(navBar, sideNav); // open "fish ladder: fall" calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // clone calculator await calcPage.clickCloneCalcButton(); diff --git a/e2e/linked-parameter-section-type.e2e-spec.ts b/e2e/linked-parameter-section-type.e2e-spec.ts index d663d2d9e281a030700de7322a4887e77b1a9e6c..538aea3b49af2c05097fe045cb343339fe5f11c2 100644 --- a/e2e/linked-parameter-section-type.e2e-spec.ts +++ b/e2e/linked-parameter-section-type.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { CalculatorPage } from "./calculator.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser } from "@wdio/globals"; describe("linked parameter in calculator with section - ", () => { @@ -29,14 +29,10 @@ describe("linked parameter in calculator with section - ", () => { // browser.manage().window().setPosition(2000, 30); // open first "parametric section" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(2); - await browser.pause(200); + await openCalculator(2, navBar, listPage); // open second "parametric section" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(2); - await browser.pause(200); + await openCalculator(2, navBar, listPage); // set Q parameter to linked mode const inputQ = await calcPage.getInputById("Q"); diff --git a/e2e/load-save-session.e2e-spec.ts b/e2e/load-save-session.e2e-spec.ts index b8fb8a83e9fdd610613eb6826e0fcf1f34e6660e..23765fbecfc7f21777d812d974a766e8488758ab 100644 --- a/e2e/load-save-session.e2e-spec.ts +++ b/e2e/load-save-session.e2e-spec.ts @@ -4,7 +4,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue, expectNumber, loadSession } from "./util.po"; +import { changeSelectValue, expectNumber, loadSession, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' const fs = require("fs"); @@ -14,7 +14,7 @@ const os = require("os"); let startPage: AppPage; let listPage: ListPage; let calcPage: CalculatorPage; -let navbar: Navbar; +let navBar: Navbar; let sidenav: SideNav; let prefPage: PreferencesPage; @@ -62,7 +62,7 @@ describe("ngHyd − save and load sessions", () => { startPage = new AppPage(); listPage = new ListPage(); calcPage = new CalculatorPage(); - navbar = new Navbar(); + navBar = new Navbar(); sidenav = new SideNav(); prefPage = new PreferencesPage(); }); @@ -74,19 +74,19 @@ describe("ngHyd − save and load sessions", () => { it("when loading session-6-calc.test.json file from home page, 6 calculators should be loaded", async () => { await startPage.navigateTo(); - await loadSession(navbar, sidenav, "./session/session-6-calc.test.json"); + await loadSession(navBar, sidenav, "./session/session-6-calc.test.json"); await browser.pause(1000); - expect(await navbar.getAllCalculatorTabs().length).toBe(6); + expect(await navBar.getAllCalculatorTabs().length).toBe(6); }); it("when loading session-optional-params.test.json file from home page, the calculator should be loaded", async () => { await startPage.navigateTo(); - await loadSession(navbar, sidenav, "./session/session-optional-params.test.json"); + await loadSession(navBar, sidenav, "./session/session-optional-params.test.json"); await browser.pause(200); - expect(await navbar.getAllCalculatorTabs().length).toBe(1); + expect(await navBar.getAllCalculatorTabs().length).toBe(1); }); it("when saving a calculator, the current parameter values should be found in the file", async () => { @@ -94,10 +94,8 @@ describe("ngHyd − save and load sessions", () => { await prefPage.navigateTo(); await prefPage.disableEvilEmptyFields(); await browser.pause(200); - await navbar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(2); // Section paramétrée - await browser.pause(200); + await openCalculator(2, navBar, listPage); // Section paramétrée await changeSelectValue(await calcPage.getSelectById("select_section"), 2); // mode "trapezoidal" @@ -136,21 +134,20 @@ describe("ngHyd − save and load sessions", () => { await prefPage.disableEvilEmptyFields(); await browser.pause(200); - // start page - await navbar.clickNewCalculatorButton(); - await browser.pause(200); + // // start page + // await navBar.clickNewCalculatorButton(); + // await browser.pause(200); } else { // empty session - await navbar.clickMenuButton(); + await navBar.clickMenuButton(); await browser.pause(500); await sidenav.clickNewSessionButton(); await browser.pause(200); } // open calculator - await listPage.clickMenuEntryForCalcType(ct); - await browser.pause(200); + await openCalculator(ct, navBar, listPage); // detect selects let selects = await calcPage.getAllCalculatorSelects(); @@ -177,12 +174,12 @@ describe("ngHyd − save and load sessions", () => { await browser.pause(500); // load session - await loadSession(navbar, sidenav, filename); + await loadSession(navBar, sidenav, filename); await browser.pause(500); // the displayed calculator is now the loaded one // check the calculator has been loaded - expectNumber(`calc ${ct} select ${selId} : num calcs`, await navbar.getCalculatorEntriesCount(), 2); + expectNumber(`calc ${ct} select ${selId} : num calcs`, await navBar.getCalculatorEntriesCount(), 2); // check the select in the loaded session points to the same option const sel2 = await calcPage.getSelectById(selId); @@ -193,11 +190,11 @@ describe("ngHyd − save and load sessions", () => { expectNumber(`calc ${ct} select ${selId} : opt '${optTxt2}' index`, ind2, nextInd); // close last calculator (the loaded one) - await navbar.middleClickCalculatorTab(1); + await navBar.middleClickCalculatorTab(1); await browser.pause(200); // check last calculator has been closed - expectNumber(`calc ${ct} select ${selId} : num calcs(2)`, await navbar.getCalculatorEntriesCount(), 1); + expectNumber(`calc ${ct} select ${selId} : num calcs(2)`, await navBar.getCalculatorEntriesCount(), 1); deleteDownloadedFile(filename); diff --git a/e2e/macrorugo-remous.e2e-spec.ts b/e2e/macrorugo-remous.e2e-spec.ts index 48ff606adaabbb3b3c771f600f7177d8d9dcd4f7..1908b6a19a758818f4a2593ce64aa3d3004bd6b5 100644 --- a/e2e/macrorugo-remous.e2e-spec.ts +++ b/e2e/macrorugo-remous.e2e-spec.ts @@ -31,13 +31,8 @@ describe("MacroRugoRemous - ", () => { }); it("check select empty message is present when no PAM is in the session", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // MacroRugoRemous calculator - await listPage.clickMenuEntryForCalcType(37); - browser.pause(200); + await openCalculator(37, navBar, listPage); // const emptyMsg = element(by.css("div .message-when-empty")); const emptyMsg = await $("div .message-when-empty"); @@ -45,40 +40,25 @@ describe("MacroRugoRemous - ", () => { }); it("check select empty message is not present when a PAM exists in the session", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // PAM calculator - await listPage.clickMenuEntryForCalcType(11); - browser.pause(200); + await openCalculator(11, navBar, listPage); await navBar.clickNewCalculatorButton(); await browser.pause(200); // MacroRugoRemous calculator - await listPage.clickMenuEntryForCalcType(37); - browser.pause(200); + await openCalculator(37, navBar, listPage); const emptyMsg = $("div .message-when-empty"); expect(await isElementDisplayed(emptyMsg)).toBe(false); }); it("check select error message when target PAM has no variated parameter", async () => { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // PAM calculator - await listPage.clickMenuEntryForCalcType(11); - browser.pause(200); + await openCalculator(11, navBar, listPage); // MacroRugoRemous calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - - await listPage.clickMenuEntryForCalcType(37); - browser.pause(200); + await openCalculator(37, navBar, listPage); const errorMsg = await $("div .select-error-message"); expect(await isElementDisplayed(errorMsg)).toBe(false); @@ -96,11 +76,7 @@ describe("MacroRugoRemous - ", () => { await browser.pause(200); // MacroRugoRemous calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - - await listPage.clickMenuEntryForCalcType(37); - browser.pause(200); + await openCalculator(37, navBar, listPage); const errorMsg = await $("div .select-error-message"); expect(await isElementDisplayed(errorMsg)).toBe(true); diff --git a/e2e/notes.e2e-spec.ts b/e2e/notes.e2e-spec.ts index de60a26f285925b53db452aab19383731933465b..6a3139ea5cec8d68ef7e5b41a13489343110e822 100644 --- a/e2e/notes.e2e-spec.ts +++ b/e2e/notes.e2e-spec.ts @@ -3,32 +3,32 @@ import { Navbar } from "./navbar.po"; import { ListPage } from "./list.po"; import { SideNav } from "./sidenav.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { newSession, openApplication, openCalculator } from "./util.po"; describe("check calculator notes", () => { let startPage: AppPage; let navBar: Navbar; let listPage: ListPage; - let sidenav: SideNav; + let sideNav: SideNav; beforeAll(() => { startPage = new AppPage(); navBar = new Navbar(); listPage = new ListPage(); - sidenav = new SideNav(); + sideNav = new SideNav(); }); it(" - notes should display properly when opened from a calculator", async () => { - await startPage.navigateTo(); - await browser.pause(500); + await openApplication(startPage); + await newSession(navBar, sideNav); // open PAB: chute calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // open notes await navBar.clickMenuButton(); await browser.pause(500); - await sidenav.clickNotesButton(); + await sideNav.clickNotesButton(); await browser.pause(200); // input some text @@ -44,7 +44,7 @@ describe("check calculator notes", () => { // reopen notes await navBar.clickMenuButton(); await browser.pause(200); - await sidenav.clickNotesButton(); + await sideNav.clickNotesButton(); await browser.pause(200); // check text @@ -54,17 +54,16 @@ describe("check calculator notes", () => { }); it(" - notes should display properly when opened from modules diagram", async () => { - await startPage.navigateTo(); - await browser.pause(500); + await openApplication(startPage); + await newSession(navBar, sideNav); // open PAB: chute calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // open notes await navBar.clickMenuButton(); await browser.pause(500); - await sidenav.clickNotesButton(); + await sideNav.clickNotesButton(); await browser.pause(200); // input some text @@ -76,7 +75,7 @@ describe("check calculator notes", () => { // open modules diagram await navBar.clickMenuButton(); await browser.pause(500); - await sidenav.clickDiagramButton(); + await sideNav.clickDiagramButton(); await browser.pause(200); // open notes diff --git a/e2e/ouvrages-empty-fields.e2e-spec.ts b/e2e/ouvrages-empty-fields.e2e-spec.ts index 24078502a66f73fe9559fde6eee826a9fc10b755..a9f876f4d1500fdb5421c020f81a11210747e2cf 100644 --- a/e2e/ouvrages-empty-fields.e2e-spec.ts +++ b/e2e/ouvrages-empty-fields.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { Navbar } from "./navbar.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -32,13 +32,8 @@ describe("ngHyd - check that created/cloned structures have empty fields - ", () }); async function setup() { - // start page - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - // open structures calculator - await listPage.clickMenuEntryForCalcType(8); - await browser.pause(200); + await openCalculator(8, navBar, listPage); } it("when a structure calculator is created", async () => { diff --git a/e2e/pab-cloisons-empty-fields.e2e-spec.ts b/e2e/pab-cloisons-empty-fields.e2e-spec.ts index 81e107f2b7b8e7676cd1168c5242c24bef9ccca2..afe34020c1d212c88aeeace74b56231e992b1530 100644 --- a/e2e/pab-cloisons-empty-fields.e2e-spec.ts +++ b/e2e/pab-cloisons-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { PreferencesPage } from "./preferences.po"; import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; /** * enable evil option "empty fields on module creation" @@ -44,9 +45,7 @@ describe("ngHyd - check the cross walls calculator has empty fields - ", () => { it("in the 'generate fish ladder' dialog", async () => { // open cross walls calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(10); - await browser.pause(200); + await openCalculator(10, navBar, listPage); // fill inputs await fillInput(calcPage, "Z1"); @@ -95,9 +94,7 @@ describe("ngHyd - check the cross walls calculator has no empty field - ", () => it("after calculation", async () => { // open cross walls calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(10); - await browser.pause(200); + await openCalculator(10, navBar, listPage); // fill inputs await fillInput(calcPage, "Z1"); diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts index 28f88a928f0135cb1d009e516268ad570fe95319..c7ec40745f7783b6f6552afdee8396d68e9fda6d 100644 --- a/e2e/pab.e2e-spec.ts +++ b/e2e/pab.e2e-spec.ts @@ -4,7 +4,7 @@ import { Navbar } from "./navbar.po"; import { AppPage } from "./app.po"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue, loadSession, newSession, scrollPageToTop } from "./util.po"; +import { changeSelectValue, loadSession, newSession, openCalculator, scrollPageToTop } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -37,8 +37,8 @@ describe("ngHyd − Passe à Bassins", () => { it("when PAB is created from scratch", async () => { // create PAB - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(15); + await openCalculator(15, navBar, listPage); + // check that pab-table is present const innerFieldsets = await $$(".pab-data-table"); expect(await innerFieldsets.length).toBe(1); @@ -58,16 +58,16 @@ describe("ngHyd − Passe à Bassins", () => { it("complete example of all PAB modules", async () => { // PAB - chute - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(12); + await openCalculator(12, navBar, listPage); + const c_Z1 = await calcPage.getInputById("Z1"); await c_Z1.setValue("78.27"); const c_Z2 = await calcPage.getInputById("Z1"); await c_Z2.setValue("74.86"); // PAB - nombre - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(13); + await openCalculator(13, navBar, listPage); + const n_DHT = await calcPage.getInputById("DHT"); await calcPage.setParamMode(n_DHT, "link"); const n_DH = await calcPage.getInputById("DH"); @@ -77,8 +77,8 @@ describe("ngHyd − Passe à Bassins", () => { await n_N.setValue("15"); // PAB - dimensions - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); + await openCalculator(5, navBar, listPage); + const d_V = await calcPage.getInputById("V"); await calcPage.setParamMode(d_V, "cal"); const d_Y = await calcPage.getInputById("Y"); @@ -89,8 +89,8 @@ describe("ngHyd − Passe à Bassins", () => { await d_W.setValue("2.5"); // PAB - puissance dissipée (volume) - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(6); + await openCalculator(6, navBar, listPage); + const p_DH = await calcPage.getInputById("DH"); await calcPage.setParamMode(p_DH, "link"); const p_Q = await calcPage.getInputById("Q"); @@ -102,8 +102,8 @@ describe("ngHyd − Passe à Bassins", () => { await p_PV.setValue("150"); // PAB - cloisons - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(10); + await openCalculator(10, navBar, listPage); + const cl_LB = await calcPage.getInputById("LB"); await calcPage.setParamMode(cl_LB, "link"); const cl_BB = await calcPage.getInputById("BB"); @@ -160,11 +160,10 @@ describe("ngHyd − Passe à Bassins", () => { await newSession(navBar, sideNav); // create many Cloisons - await listPage.clickMenuEntryForCalcType(10); - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(10); - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(10); + await openCalculator(10, navBar, listPage); + await openCalculator(10, navBar, listPage); + await openCalculator(10, navBar, listPage); + // choose one of them and change its parameters await navBar.clickCalculatorTab(1); const Z1 = await calcPage.getInputById("Z1"); diff --git a/e2e/parallel-structures.e2e-spec.ts b/e2e/parallel-structures.e2e-spec.ts index 54ebb02952312ad799e8a46d01de02c1611f098a..1316a9ddb8f393fa469d397337994c00392ff636 100644 --- a/e2e/parallel-structures.e2e-spec.ts +++ b/e2e/parallel-structures.e2e-spec.ts @@ -3,7 +3,7 @@ import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { AppPage } from "./app.po"; -import { loadSession } from "./util.po"; +import { loadSession, openCalculator } from "./util.po"; import { SideNav } from "./sidenav.po"; import { browser, $, $$, expect } from '@wdio/globals' @@ -33,10 +33,7 @@ describe("Parallel structures - ", () => { 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); + await openCalculator(10, navBar, listPage); // check L in first structure calc toggle is not checked const L1 = await calcPage.getInputById("0_L"); diff --git a/e2e/prebarrages-results.e2e-spec.ts b/e2e/prebarrages-results.e2e-spec.ts index 09c79d23b2f5527fdb744664d70aa3023ce6a2ee..f988a8dbbca2f0b248cc17401a08440a3ea2acdc 100644 --- a/e2e/prebarrages-results.e2e-spec.ts +++ b/e2e/prebarrages-results.e2e-spec.ts @@ -3,7 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' -import { scrollToElement } from "./util.po"; +import { openCalculator, scrollToElement } from "./util.po"; /** * Clone calculators @@ -32,10 +32,7 @@ describe("Prébarrages results - ", () => { it("every module shoud have results", async () => { // create prébarrage calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // run calculation const calcButton = await calcPage.getCalculateButton(); diff --git a/e2e/predam-empty-fields.e2e-spec.ts b/e2e/predam-empty-fields.e2e-spec.ts index 66ad0806c7097a60474f2e873dbdc02dc17ea55c..096898b2234c61c7af0179ab297b2f6272ea6471 100644 --- a/e2e/predam-empty-fields.e2e-spec.ts +++ b/e2e/predam-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po" import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; /** * check that fields are empty on creation @@ -29,11 +30,8 @@ describe("ngHyd − check that predam fields are empty", () => { }); it("on creation", async () => { - //browser.manage().window().setPosition(2000, 30); // open predam calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // check upstream inputs await calcPage.checkEmptyInput("Q"); @@ -68,9 +66,7 @@ describe("ngHyd − check that predam fields are empty", () => { it("when a basin is added", async () => { // open predam calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // add basin const addBasinBtn = await $("#add-basin"); @@ -90,9 +86,7 @@ describe("ngHyd − check that predam fields are empty", () => { it("when a wall is added", async () => { // open predam calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // add wall const addWallBtn = await $("#add-wall"); diff --git a/e2e/predam-log.e2e-spec.ts b/e2e/predam-log.e2e-spec.ts index 11326ca7b30206e7257009c10ad00cdef48ee4bc..856a67c893e1c552aea365793083ca3f954698d2 100644 --- a/e2e/predam-log.e2e-spec.ts +++ b/e2e/predam-log.e2e-spec.ts @@ -3,6 +3,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po" import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("check that low iteration count leads to log messages", () => { let listPage: ListPage; @@ -30,9 +31,7 @@ describe("check that low iteration count leads to log messages", () => { await prefPage.setIterationCount(5); // open predam calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(30); - await browser.pause(200); + await openCalculator(30, navBar, listPage); // run calculation const calcButton = await calcPage.getCalculateButton(); diff --git a/e2e/pressure-loss-empty-fields.e2e-spec.ts b/e2e/pressure-loss-empty-fields.e2e-spec.ts index 53b14e380df59c89b104452c73f91959f2f5d36b..8278f2474890b22875753d16e5b3d127638c527a 100644 --- a/e2e/pressure-loss-empty-fields.e2e-spec.ts +++ b/e2e/pressure-loss-empty-fields.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' describe("Check fields are empty in 'pressure loss' calculator when created with 'empty fields' option -", () => { @@ -11,7 +11,7 @@ describe("Check fields are empty in 'pressure loss' calculator when created with let calcPage: CalculatorPage; let prefPage: PreferencesPage; - beforeAll( () => { + beforeAll(() => { listPage = new ListPage(); navBar = new Navbar(); calcPage = new CalculatorPage(); @@ -27,9 +27,7 @@ describe("Check fields are empty in 'pressure loss' calculator when created with it("with Lechapt-Calmon pressure loss law", async () => { // open "pressure loss" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(35); - await browser.pause(200); + await openCalculator(35, navBar, listPage); // select Lechapt-Calmon pressure loss law const materialSelect = await calcPage.getSelectById("select_pressurelosstype"); diff --git a/e2e/pressure-loss.e2e-spec.ts b/e2e/pressure-loss.e2e-spec.ts index 1e8d1e21f81ddf411485abbb0a51dc1842f7115e..66537c8e85134ad145cfa87ce99cea7031787809 100644 --- a/e2e/pressure-loss.e2e-spec.ts +++ b/e2e/pressure-loss.e2e-spec.ts @@ -2,7 +2,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; -import { changeSelectValue } from "./util.po"; +import { changeSelectValue, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' describe("Pressure loss - ", () => { @@ -28,9 +28,7 @@ describe("Pressure loss - ", () => { 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.pause(200); + await openCalculator(35, navBar, listPage); // select Lechapt-Calmon pressure loss law const materialSelect = await calcPage.getSelectById("select_pressurelosstype"); @@ -50,9 +48,7 @@ describe("Pressure loss - ", () => { it("Strickler", async () => { // open "pressure loss" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(35); - await browser.pause(200); + await openCalculator(35, navBar, listPage); // select Strickler pressure loss law const materialSelect = await calcPage.getSelectById("select_pressurelosstype"); diff --git a/e2e/regime-uniforme-empty-fields.e2e-spec.ts b/e2e/regime-uniforme-empty-fields.e2e-spec.ts index f9178310462e7c65f697d186e21a2ba7c37d08a1..4725067b5c2146c32a0ec8ad2ec1fcfded425f21 100644 --- a/e2e/regime-uniforme-empty-fields.e2e-spec.ts +++ b/e2e/regime-uniforme-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check fields are empty in 'uniform flow' calculator when created with 'empty fields' option", () => { let listPage: ListPage; @@ -26,9 +27,7 @@ describe("Check fields are empty in 'uniform flow' calculator when created with it("", async () => { // open "uniform flow" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(3); - await browser.pause(200); + await openCalculator(3, navBar, listPage); expect(await calcPage.checkEmptyOrFilledFields(["LargeurBerge", "Ks", "If", "YB", "Q", "Y"], [true, true, true, true, true, true])) }); diff --git a/e2e/remous.e2e-spec.ts b/e2e/remous.e2e-spec.ts index 48cdcf57f154fe10f148783afd61e1683bdc499e..2fd14288e7bd9089a98b758b35e12112227d1fb1 100644 --- a/e2e/remous.e2e-spec.ts +++ b/e2e/remous.e2e-spec.ts @@ -3,7 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { SideNav } from "./sidenav.po"; -import { changeSelectValue, loadSession } from "./util.po"; +import { changeSelectValue, loadSession, openCalculator } from "./util.po"; import { browser, $, $$, expect } from '@wdio/globals' /** @@ -32,11 +32,9 @@ describe("ngHyd − remous", () => { }); it("when leaving calculated remous page then coming back to it, logs should not be duplicated", async () => { - await navBar.clickNewCalculatorButton(); // 1. create new Remous - await listPage.clickMenuEntryForCalcType(4); - await browser.pause(300); + await openCalculator(4, navBar, listPage); // 2. calculate it, there should be 6 messages in the log const calcBtn = await calcPage.getCalculateButton() @@ -59,11 +57,8 @@ describe("ngHyd − remous", () => { }); it("Calculation with large bed width should run successfully", async () => { - await navBar.clickNewCalculatorButton(); - // 1. create new Remous - await listPage.clickMenuEntryForCalcType(4); - await browser.pause(300); + await openCalculator(4, navBar, listPage); // 2. Set to trapezoidal section with bank slope of 2m/m and 20 meter width bed await changeSelectValue(await calcPage.getSelectById("select_section"), 2); diff --git a/e2e/reset-param-mode.e2e-spec.ts b/e2e/reset-param-mode.e2e-spec.ts index 1a1c7ac6ff11db6050bdc8e921057f6a6a87220c..b686e0c33eb8d48c1e7c60f77c7434a84fa0a3d0 100644 --- a/e2e/reset-param-mode.e2e-spec.ts +++ b/e2e/reset-param-mode.e2e-spec.ts @@ -1,33 +1,36 @@ import { ListPage } from "./list.po"; import { browser, $, $$, expect } from '@wdio/globals' -import { newSession } from "./util.po"; +import { newSession, openApplication, openCalculator } from "./util.po"; import { Navbar } from "./navbar.po"; import { SideNav } from "./sidenav.po"; import { CalculatorPage } from "./calculator.po"; +import { AppPage } from "./app.po"; /** * Parameter mode should be set to its previous mode (fixed/var/...) when cancel is pressed * in variable mode edition dialog */ describe("ngHyd - check parameter mode is set to its previous value - ", () => { + let startPage: AppPage; let listPage: ListPage; let navBar: Navbar; let sideNav: SideNav; let calcPage: CalculatorPage; beforeAll(() => { + startPage = new AppPage(); listPage = new ListPage(); + navBar = new Navbar(); + sideNav = new SideNav(); calcPage = new CalculatorPage(); }); it("when min/max/list values dialog is cancelled on 'fish ladder: fall' calculator", async () => { - // start page - await listPage.navigateTo(); - await browser.pause(300); + await openApplication(startPage); + await newSession(navBar, sideNav); // open 'PAB fall' calculator - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // click "calc" radio on Z1 parameter const z1calcbtn = await calcPage.getInputRadioButtonFromId("Z1", "cal"); @@ -52,13 +55,11 @@ describe("ngHyd - check parameter mode is set to its previous value - ", () => { }); it("when min/max/list values dialog is cancelled on 'fish ladder' calculator", async () => { - // start page - await listPage.navigateTo(); - await browser.pause(300); + await openApplication(startPage); + await newSession(navBar, sideNav); // open PAB calculator - await listPage.clickMenuEntryForCalcType(15); - await browser.pause(500); + await openCalculator(15, navBar, listPage); // "fixed" radio on Q parameter const qfixbtn = await calcPage.getInputRadioButtonFromId("Q", "fix"); diff --git a/e2e/reset-results.e2e-spec.ts b/e2e/reset-results.e2e-spec.ts index 175af9a9bda3bf65c89edfd6b3c1fb1d9b97480b..fad95d5f0bcfbf26c3c2b2773b10d451ecb6179e 100644 --- a/e2e/reset-results.e2e-spec.ts +++ b/e2e/reset-results.e2e-spec.ts @@ -4,6 +4,7 @@ import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { SideNav } from "./sidenav.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check results are reset after application settings modification - ", () => { let listPage: ListPage; @@ -36,10 +37,7 @@ describe("Check results are reset after application settings modification - ", ( await input.setValue(val1.toString()); // open "fish ladder: fall" calculator - await navBar.clickNewCalculatorButton(); - await browser.pause(200); - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // click "compute" button const calcButton = await calcPage.getCalculateButton(); diff --git a/e2e/section-empty-fields.e2e-spec.ts b/e2e/section-empty-fields.e2e-spec.ts index 5d867024c690a0aa19da2f2552c95cf0d2b63735..73496834c2901472c70314df451fa9cf015c4d62 100644 --- a/e2e/section-empty-fields.e2e-spec.ts +++ b/e2e/section-empty-fields.e2e-spec.ts @@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po"; import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check fields are empty in 'parametric section' calculator when created with 'empty fields' option", () => { let listPage: ListPage; @@ -26,9 +27,7 @@ describe("Check fields are empty in 'parametric section' calculator when created it("", async () => { // open "parametric section" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(2); - await browser.pause(200); + await openCalculator(2, navBar, listPage); expect(await calcPage.checkEmptyOrFilledFields(["LargeurBerge", "Ks", "If", "YB", "Q", "Y"], [true, true, true, true, true, true])); }); diff --git a/e2e/select-default-value.e2e-spec.ts b/e2e/select-default-value.e2e-spec.ts index 058408310ab9cfd9a9a115c23a6d24eb75e1d10e..5658675d1d72bd571a68881711133d4b778b62eb 100644 --- a/e2e/select-default-value.e2e-spec.ts +++ b/e2e/select-default-value.e2e-spec.ts @@ -3,6 +3,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("check the select default value - ", () => { let prefPage: PreferencesPage; @@ -29,9 +30,7 @@ describe("check the select default value - ", () => { it("in the 'backwater curve' calculator", async () => { // open backwater curve calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(4); - await browser.pause(200); + await openCalculator(4, navBar, listPage); // in the calculator configuration file, the default resolution method is 'Trapezes'. // let's check this... @@ -42,9 +41,7 @@ describe("check the select default value - ", () => { it("in the 'up/downstream elevations of a reach' calculator", async () => { // open "up/downstream elevations of a reach" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(21); - await browser.pause(200); + await openCalculator(21, navBar, listPage); // in the calculator configuration file, the default section method is 'Rectangulaire'. // let's check this... diff --git a/e2e/solveur.e2e-spec.ts b/e2e/solveur.e2e-spec.ts index 88fe956ea6404352486c138ba7e6de213de1e619..6bacf6639fb7a516f4d728e04d592eb3bf55f78d 100644 --- a/e2e/solveur.e2e-spec.ts +++ b/e2e/solveur.e2e-spec.ts @@ -77,16 +77,12 @@ describe("Solveur - ", () => { await newSession(navBar, sideNav); // 1. create empty Solveur - openCalculator(22, navBar, listPage); + await openCalculator(22, navBar, listPage); // 2. create PAB:Chute, PAB:Nombre and PAB:Puissance linked to one another - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(12); // PAB:Chute - await browser.pause(500); - await navBar.clickNewCalculatorButton(); + await openCalculator(12, navBar, listPage); // PAB:Chute + await openCalculator(13, navBar, listPage); // PAB:Nombre - await listPage.clickMenuEntryForCalcType(13); // PAB:Nombre - await browser.pause(500); // link DHT to PAB:Chute.DH const dht = await calcPage.getInputById("DHT"); await calcPage.setParamMode(dht, "link"); @@ -94,9 +90,8 @@ describe("Solveur - ", () => { const dh_nombre = await calcPage.getInputById("DH"); await calcPage.setParamMode(dh_nombre, "cal"); - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(6); // PAB:Puissance - await browser.pause(500); + await openCalculator(6, navBar, listPage); // PAB:Puissance + // link DH to PAB:Nombre.DH const dh_puiss = await calcPage.getInputById("DH"); await calcPage.setParamMode(dh_puiss, "link"); diff --git a/e2e/translation.e2e-spec.ts b/e2e/translation.e2e-spec.ts index d87a45a7bb449bbf130778b3656b64b56236842f..dffdf4997574859ff23c57f1d8d593020ba74eed 100644 --- a/e2e/translation.e2e-spec.ts +++ b/e2e/translation.e2e-spec.ts @@ -4,6 +4,7 @@ import { CalculatorPage } from "./calculator.po"; import { PreferencesPage } from "./preferences.po"; import { SideNav } from "./sidenav.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("Check translation", () => { let listPage: ListPage; @@ -31,9 +32,7 @@ describe("Check translation", () => { await prefPage.changeLanguage(1); // fr // open "fish ladder: fall" calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // set Z2 to variated mode const inpZ2 = await calcPage.getInputById("Z2"); diff --git a/e2e/util.po.ts b/e2e/util.po.ts index c6cd6471e9815ede92cd6f774a44838232c03ab9..079bbce3db1df52f162a34c9084de0554f8ad86e 100644 --- a/e2e/util.po.ts +++ b/e2e/util.po.ts @@ -2,6 +2,7 @@ import { browser, $, $$, expect } from '@wdio/globals' import { Navbar } from './navbar.po'; import { SideNav } from './sidenav.po'; import { ListPage } from './list.po'; +import { AppPage } from "./app.po"; /** * scroll page to make element visible @@ -58,6 +59,17 @@ export async function newSession(navBar: Navbar, sideNav: SideNav) { } } +/** + * open application if necessary (ie. if no URL has been open) + */ +export async function openApplication(startPage: AppPage) { + const url = await browser.getUrl(); + if (url.indexOf("localhost") === -1) { + await startPage.navigateTo(); + await browser.pause(500); + } +} + export async function openCalculator(id: number, navBar: Navbar, listPage: ListPage) { const ncButton = await navBar.getNewCalculatorButton(); if (await ncButton.isExisting()) { diff --git a/e2e/valeurs-erronees.e2e-spec.ts b/e2e/valeurs-erronees.e2e-spec.ts index 2e88357fc5878b2b66d55996f98d8ddaafc1cf7d..a332dced979579aa5eab52fcb5847e138e554ace 100644 --- a/e2e/valeurs-erronees.e2e-spec.ts +++ b/e2e/valeurs-erronees.e2e-spec.ts @@ -3,6 +3,7 @@ import { ListPage } from "./list.po"; import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { openCalculator } from "./util.po"; describe("ngHyd - check invalid values are removed - ", () => { let listPage: ListPage; @@ -27,18 +28,14 @@ describe("ngHyd - check invalid values are removed - ", () => { it("when switching to another calculator", async () => { // open PAB dimensions calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(5); - await browser.pause(200); + await openCalculator(5, navBar, listPage); // modify W input with invalid value const inputW = await calcPage.getInputById("W"); await inputW.setValue("-1"); // open another calculator - await navBar.clickNewCalculatorButton(); - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // back to first calculator await navBar.openNthCalculator(0); diff --git a/e2e/variable-param-cancel.e2e-spec.ts b/e2e/variable-param-cancel.e2e-spec.ts index fedb54603dc2310d6837c5584cb09b9cd99754f4..d141b2d2eb845558c0570ac7ef75132336c47f05 100644 --- a/e2e/variable-param-cancel.e2e-spec.ts +++ b/e2e/variable-param-cancel.e2e-spec.ts @@ -1,29 +1,36 @@ -import { brotliCompress } from "zlib"; import { CalculatorPage } from "./calculator.po"; import { ListPage } from "./list.po"; import { browser, $, $$, expect } from '@wdio/globals' +import { newSession, openApplication, openCalculator } from "./util.po"; +import { Navbar } from "./navbar.po"; +import { AppPage } from "./app.po"; +import { SideNav } from "./sidenav.po"; /** * Check that a cancel button is present in min/max/list edition dialog * for variable parameters */ describe("ngHyd - check cancel button for variable parameters - ", () => { + let startPage: AppPage; let listPage: ListPage; let calcPage: CalculatorPage; + let navBar: Navbar; + let sideNav: SideNav; beforeAll(() => { + startPage = new AppPage(); listPage = new ListPage(); calcPage = new CalculatorPage(); + navBar = new Navbar(); + sideNav = new SideNav(); }); it("when min/max/list values dialog opens, a cancel button should be present", async () => { - // start page - await listPage.navigateTo(); - await browser.pause(200); + await openApplication(startPage); + await newSession(navBar, sideNav); // open PAB chute - await listPage.clickMenuEntryForCalcType(12); - await browser.pause(200); + await openCalculator(12, navBar, listPage); // click "var" radio on Z1 parameter const z1btn = await calcPage.getInputRadioButtonFromId("Z1", "var");