From 652f8631ef3673b76c374887f21e45406a2e9566 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Tue, 4 Apr 2023 16:26:30 +0200
Subject: [PATCH] refactor(e2e): move loadSession() function to util.po

refs #614
---
 e2e/load-save-session.e2e-spec.ts | 18 ++++--------------
 e2e/util.po.ts                    | 15 +++++++++++++++
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/e2e/load-save-session.e2e-spec.ts b/e2e/load-save-session.e2e-spec.ts
index b56572375..acb9b6f1d 100644
--- a/e2e/load-save-session.e2e-spec.ts
+++ b/e2e/load-save-session.e2e-spec.ts
@@ -5,7 +5,7 @@ import { Navbar } from "./navbar.po";
 import { SideNav } from "./sidenav.po";
 import { browser, by, element } from "protractor";
 import { PreferencesPage } from "./preferences.po";
-import { changeSelectValue, expectNumber } from "./util.po";
+import { changeSelectValue, expectNumber, loadSession } from "./util.po";
 
 const fs = require("fs");
 const path = require("path");
@@ -86,16 +86,6 @@ async function saveSession(): Promise<string> {
     return findDownloadedFile(sessionFile);
 }
 
-async function loadSession(path: string) {
-    await navbar.clickMenuButton();
-    await browser.sleep(200);
-
-    await sidenav.clickLoadSessionButton();
-    await browser.sleep(200);
-
-    await sidenav.loadSessionFile(path);
-}
-
 /**
  * Save and load (serialise and unserialise) calculators to/from JSON files
  */
@@ -117,7 +107,7 @@ 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("./session/session-6-calc.test.json");
+        await loadSession(navbar, sidenav, "./session/session-6-calc.test.json");
         await browser.sleep(1000);
 
         expect(await navbar.getAllCalculatorTabs().count()).toBe(6);
@@ -126,7 +116,7 @@ describe("ngHyd − save and load sessions", () => {
     it("when loading session-optional-params.test.json file from home page, the calculator should be loaded", async () => {
         await startPage.navigateTo();
 
-        await loadSession("./session/session-optional-params.test.json");
+        await loadSession(navbar, sidenav, "./session/session-optional-params.test.json");
         await browser.sleep(200);
 
         expect(await navbar.getAllCalculatorTabs().count()).toBe(1);
@@ -219,7 +209,7 @@ describe("ngHyd − save and load sessions", () => {
                         await browser.sleep(200);
 
                         // load session
-                        await loadSession(filename); // bug here : the click on the menu button (top left) takes 40s to take effect and open the side nav!)
+                        await loadSession(navbar, sidenav, filename); // bug here : the click on the menu button (top left) takes 40s to take effect and open the side nav!)
                         await browser.sleep(200);
                         // the displayed calculator is now the loaded one
 
diff --git a/e2e/util.po.ts b/e2e/util.po.ts
index aded71c16..f20a7cd91 100644
--- a/e2e/util.po.ts
+++ b/e2e/util.po.ts
@@ -1,4 +1,6 @@
 import { ElementFinder, browser, by, element } from "protractor";
+import { Navbar } from "./navbar.po";
+import { SideNav } from "./sidenav.po";
 
 /**
  * scroll page to make element visible
@@ -35,3 +37,16 @@ export async function changeSelectValue(elt: ElementFinder, index: number) {
     await option.click();
     await browser.sleep(200);
 }
+
+/**
+ * load a session from JSON file
+ */
+export async function loadSession(navbar: Navbar, sideNav: SideNav, path: string) {
+    await navbar.clickMenuButton();
+    await browser.sleep(200);
+
+    await sideNav.clickLoadSessionButton();
+    await browser.sleep(200);
+
+    await sideNav.loadSessionFile(path);
+}
-- 
GitLab