From 33189f53487edeea840f76ca11ea12e294d6b419 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Thu, 11 May 2023 10:01:40 +0200
Subject: [PATCH] refactor(e2e): use loadSession() where possible

refs #618
---
 e2e/calculate-linked-params.e2e-spec.ts     | 19 +++++---------
 e2e/compute-reset-chained-links.e2e-spec.ts | 23 +++-------------
 e2e/load-linked-params.e2e-spec.ts          | 10 ++-----
 e2e/load-malformed-files.e2e-spec.ts        | 29 ++++-----------------
 e2e/pab.e2e-spec.ts                         | 17 +++---------
 e2e/remous.e2e-spec.ts                      |  9 ++-----
 e2e/solveur.e2e-spec.ts                     | 11 ++------
 e2e/util.po.ts                              |  9 ++++---
 8 files changed, 31 insertions(+), 96 deletions(-)

diff --git a/e2e/calculate-linked-params.e2e-spec.ts b/e2e/calculate-linked-params.e2e-spec.ts
index 557484db..2f998ebd 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, newSession } from "./util.po";
+import { changeSelectValue, loadSession, newSession } from "./util.po";
 import { browser, $, $$, expect } from '@wdio/globals'
 
 /**
@@ -234,12 +234,10 @@ describe("ngHyd − calculate with linked parameters", () => {
     it(" − multiple variated parameters, including a linked one (#253)", async () => {
         // load session file
         await navBar.clickNewCalculatorButton();
-        await navBar.clickMenuButton();
         await browser.pause(200);
-        await sideNav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sideNav.loadSessionFile("./session/session-multivar-link.json");
-        await browser.pause(500);
+
+        await loadSession(navBar, sideNav, "./session/session-multivar-link.json");
+
         expect(await navBar.getAllCalculatorTabs().length).toBe(2);
 
         // calculate
@@ -270,13 +268,10 @@ describe("ngHyd − calculate with linked parameters", () => {
 
     it(" − bug nghyd#329 : unexpected ERR in results table", async () => {
         await navBar.clickNewCalculatorButton();
-        // load session
-        await navBar.clickMenuButton();
-        await browser.pause(200);
-        await sideNav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sideNav.loadSessionFile("./session/session-pab-chain-nghyd-329.json");
         await browser.pause(200);
+
+        // load session
+        await loadSession(navBar, sideNav, "./session/session-pab-chain-nghyd-329.json");
         expect(await navBar.getAllCalculatorTabs().length).toBe(3);
 
         // calculate PAB-Dimensions
diff --git a/e2e/compute-reset-chained-links.e2e-spec.ts b/e2e/compute-reset-chained-links.e2e-spec.ts
index 1f87a7ad..e0577d24 100644
--- a/e2e/compute-reset-chained-links.e2e-spec.ts
+++ b/e2e/compute-reset-chained-links.e2e-spec.ts
@@ -4,7 +4,7 @@ import { Navbar } from "./navbar.po";
 import { SideNav } from "./sidenav.po";
 import { PreferencesPage } from "./preferences.po";
 import { browser, $, $$, expect } from '@wdio/globals'
-import { newSession } from "./util.po";
+import { loadSession, newSession } from "./util.po";
 
 /**
  * Load a session containing 3 calculators, having linked parameters
@@ -31,12 +31,7 @@ describe("ngHyd − compute then reset chained results − ", () => {
     it("when loading session-cascade-params.json, computation should not be chained, but results reset should be", async () => {
         // load session file
         await startPage.navigateTo();
-        await navBar.clickMenuButton();
-        await browser.pause(200);
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sidenav.loadSessionFile("./session/session-cascade-params.json");
-        await browser.pause(500);
+        await loadSession(navBar, sidenav, "./session/session-cascade-params.json");
         expect(await navBar.getAllCalculatorTabs().length).toBe(3);
 
         // 1. get down-most module
@@ -91,12 +86,7 @@ describe("ngHyd − compute then reset chained results − ", () => {
     it("when loading session-cascade-results.json, computation and results reset should be chained", async () => {
         // load session file
         await startPage.navigateTo();
-        await navBar.clickMenuButton();
-        await browser.pause(500);
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sidenav.loadSessionFile("./session/session-cascade-results.json");
-        await browser.pause(500);
+        await loadSession(navBar, sidenav, "./session/session-cascade-results.json");
         expect(await navBar.getAllCalculatorTabs().length).toBe(3);
 
         // 1. get down-most module (PAB Dimensions)
@@ -142,12 +132,7 @@ describe("ngHyd − compute then reset chained results − ", () => {
         await browser.pause(200);
 
         // load session file
-        await navBar.clickMenuButton();
-        await browser.pause(500);
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sidenav.loadSessionFile("./session/session-results-invalidation.json");
-        await browser.pause(500);
+        await loadSession(navBar, sidenav, "./session/session-results-invalidation.json");
         expect(await navBar.getAllCalculatorTabs().length).toBe(2);
 
         // get down-most module (Ouvrages)
diff --git a/e2e/load-linked-params.e2e-spec.ts b/e2e/load-linked-params.e2e-spec.ts
index 22671e1a..3ffa9d9a 100644
--- a/e2e/load-linked-params.e2e-spec.ts
+++ b/e2e/load-linked-params.e2e-spec.ts
@@ -3,6 +3,7 @@ import { Navbar } from "./navbar.po";
 import { SideNav } from "./sidenav.po";
 import { PreferencesPage } from "./preferences.po";
 import { browser, $, $$, expect } from '@wdio/globals'
+import { loadSession } from "./util.po";
 
 /**
  * Load a session containing 5 calculators, having multiple linked parameters
@@ -35,14 +36,7 @@ describe("ngHyd − load session with multiple linked parameters − ", () => {
     });
 
     it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => {
-        await navbar.clickMenuButton();
-        await browser.pause(500);
-
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-
-        await sidenav.loadSessionFile("./session/session-liens-spaghetti.json");
-        await browser.pause(500);
+        await loadSession(navbar, sidenav, "./session/session-liens-spaghetti.json");
 
         expect(await navbar.getAllCalculatorTabs().length).toBe(5);
 
diff --git a/e2e/load-malformed-files.e2e-spec.ts b/e2e/load-malformed-files.e2e-spec.ts
index 708332a3..4f665914 100644
--- a/e2e/load-malformed-files.e2e-spec.ts
+++ b/e2e/load-malformed-files.e2e-spec.ts
@@ -2,6 +2,7 @@ import { Navbar } from "./navbar.po";
 import { SideNav } from "./sidenav.po";
 import { PreferencesPage } from "./preferences.po";
 import { browser, $, $$, expect } from '@wdio/globals'
+import { loadSession } from "./util.po";
 
 /**
  * Load 4 malformed session files :
@@ -31,49 +32,29 @@ describe("ngHyd − load malformed session files − ", () => {
     });
 
     it("when loading session-bad-syntax.json, displayed error should be relevant", async () => {
-        await navbar.clickMenuButton();
-        await browser.pause(500);
+        await loadSession(navbar, sidenav, "./session/session-bad-syntax.json");
 
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-
-        await sidenav.loadSessionFile("./session/session-bad-syntax.json");
         const err = await $(".file-problem .mat-list-item-content");
         expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
     });
 
     it("when loading session-missing-info.json, displayed error should be relevant", async () => {
-        await navbar.clickMenuButton();
-        await browser.pause(500);
-
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
+        await loadSession(navbar, sidenav, "./session/session-missing-info.json");
 
-        await sidenav.loadSessionFile("./session/session-missing-info.json");
         const err = await $(".file-problem .mat-list-item-content");
         expect(await err.getText()).toContain("La syntaxe du fichier semble incorrecte");
     });
 
     it("when loading session-empty-modules-list.json, displayed error should be relevant", async () => {
-        await navbar.clickMenuButton();
-        await browser.pause(500);
+        await loadSession(navbar, sidenav, "./session/session-empty-modules-list.json");
 
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-
-        await sidenav.loadSessionFile("./session/session-empty-modules-list.json");
         const err = await $(".file-problem .mat-list-item-content");
         expect(await err.getText()).toContain("Le fichier ne contient aucun module");
     });
 
     it("when loading session-format-too-old.json, displayed error should be relevant", async () => {
-        await navbar.clickMenuButton();
-        await browser.pause(500);
-
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
+        await loadSession(navbar, sidenav, "./session/session-format-too-old.json", false);
 
-        await sidenav.loadSessionFile("./session/session-format-too-old.json", false);
         const err = await $(".file-problem .mat-list-item-content");
         expect(await err.getText()).toContain("Mauvaise version du format de fichier");
     });
diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts
index 8e56d0e8..28f88a92 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, newSession, scrollPageToTop } from "./util.po";
+import { changeSelectValue, loadSession, newSession, scrollPageToTop } from "./util.po";
 import { browser, $, $$, expect } from '@wdio/globals'
 
 /**
@@ -228,12 +228,8 @@ describe("ngHyd − Passe à Bassins", () => {
         it("complete example of all PAB modules", async () => {
             await startPage.navigateTo();
             // load
-            await navBar.clickMenuButton();
-            await browser.pause(500);
-            await sideNav.clickLoadSessionButton();
-            await browser.pause(200);
-            await sideNav.loadSessionFile("./session/session-pab-complete.json");
-            await browser.pause(500);
+            await loadSession(navBar, sideNav, "./session/session-pab-complete.json");
+
             // check existence of the loaded modules
             expect(await navBar.getAllCalculatorTabs().length).toBe(6);
 
@@ -267,12 +263,7 @@ describe("ngHyd − Passe à Bassins", () => {
             await startPage.navigateTo();
             await browser.pause(500);
             // load
-            await navBar.clickMenuButton();
-            await browser.pause(500);
-            await sideNav.clickLoadSessionButton();
-            await browser.pause(200);
-            await sideNav.loadSessionFile("./session/session-pab-regulee-variee.json");
-            await browser.pause(500);
+            await loadSession(navBar, sideNav, "./session/session-pab-regulee-variee.json");
             // check existence of the loaded module
             expect(await navBar.getAllCalculatorTabs().length).toBe(1);
             await navBar.clickCalculatorTab(0);
diff --git a/e2e/remous.e2e-spec.ts b/e2e/remous.e2e-spec.ts
index d75b1681..48cdcf57 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 } from "./util.po";
+import { changeSelectValue, loadSession } from "./util.po";
 import { browser, $, $$, expect } from '@wdio/globals'
 
 /**
@@ -86,12 +86,7 @@ describe("ngHyd − remous", () => {
 
     it("Check that calculation with dx >= reach length fails", async () => {
         // load backwater curve session file with Dx>=Long
-        await navBar.clickMenuButton();
-        await browser.pause(500);
-        await sidenav.clickLoadSessionButton();
-        await browser.pause(200);
-        await sidenav.loadSessionFile("./session/session-remous-dx-bief.json");
-        await browser.pause(300);
+        await loadSession(navBar, sidenav, "./session/session-remous-dx-bief.json");
 
         // Calculate, the calculation should fail
         const calcBtn = await calcPage.getCalculateButton()
diff --git a/e2e/solveur.e2e-spec.ts b/e2e/solveur.e2e-spec.ts
index ddfb70e7..88fe956e 100644
--- a/e2e/solveur.e2e-spec.ts
+++ b/e2e/solveur.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, newSession, openCalculator, scrollPageToTop } from "./util.po";
+import { changeSelectValue, loadSession, newSession, openCalculator, scrollPageToTop } from "./util.po";
 import { browser, $, $$, expect } from '@wdio/globals'
 
 /**
@@ -34,14 +34,7 @@ describe("Solveur - ", () => {
     });
 
     it("load > calculate", async () => {
-        await navBar.clickMenuButton();
-        await browser.pause(500);
-
-        await sideNav.clickLoadSessionButton();
-        await browser.pause(200);
-
-        await sideNav.loadSessionFile("./session/session-solveur-chutes.json");
-        await browser.pause(200);
+        await loadSession(navBar, sideNav, "./session/session-solveur-chutes.json");
 
         expect(await navBar.getAllCalculatorTabs().length).toBe(4);
         await navBar.clickCalculatorTab(3); // n°3 should be the latest
diff --git a/e2e/util.po.ts b/e2e/util.po.ts
index 04f8564f..c6cd6471 100644
--- a/e2e/util.po.ts
+++ b/e2e/util.po.ts
@@ -75,14 +75,15 @@ export async function openCalculator(id: number, navBar: Navbar, listPage: ListP
 /**
  * load a session from JSON file
  */
-export async function loadSession(navbar: Navbar, sideNav: SideNav, path: string) {
+export async function loadSession(navbar: Navbar, sideNav: SideNav, path: string, click: boolean = true) {
     await navbar.clickMenuButton();
-    await browser.pause(200);
+    await browser.pause(500);
 
     await sideNav.clickLoadSessionButton();
-    await browser.pause(200);
+    await browser.pause(500);
 
-    await sideNav.loadSessionFile(path);
+    await sideNav.loadSessionFile(path, click);
+    await browser.pause(500);
 }
 
 /**
-- 
GitLab