From 429da3bc58ba4e7237ef3f88a0f7ce41ee46ea50 Mon Sep 17 00:00:00 2001
From: David Dorchies <david.dorchies@inrae.fr>
Date: Mon, 8 Jan 2024 13:42:54 +0000
Subject: [PATCH] tests(MacroRugoRemous): add e2e test for module generation
 from PAM

Refs #609
---
 e2e/calculator.po.ts             |  8 ++++++--
 e2e/macrorugo-remous.e2e-spec.ts | 28 +++++++++++++++++++++++++++-
 2 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index bf82481cb..032e72d7c 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -142,11 +142,15 @@ export class CalculatorPage {
     }
 
     getCalculateButton() {
-        return $("button#trigger-calculate");
+        return this.getButton("trigger-calculate");
     }
 
     getGeneratePabButton() {
-        return $("button#generate-pab");
+        return this.getButton("generate-pab");
+    }
+
+    getButton(id: string) {
+        return $(`button#${id}`);
     }
 
     getCheckedCalcModeButtons() {
diff --git a/e2e/macrorugo-remous.e2e-spec.ts b/e2e/macrorugo-remous.e2e-spec.ts
index 85e994510..5c76a88de 100644
--- a/e2e/macrorugo-remous.e2e-spec.ts
+++ b/e2e/macrorugo-remous.e2e-spec.ts
@@ -2,7 +2,7 @@ import { ListPage } from "./list.po";
 import { PreferencesPage } from "./preferences.po";
 import { Navbar } from "./navbar.po";
 import { browser, $, $$, expect } from '@wdio/globals'
-import { isElementDisplayed, openCalculator } from "./util.po";
+import { isElementDisplayed, openCalculator, scrollPageToTop } from "./util.po";
 import { CalculatorPage } from "./calculator.po";
 import { newSession } from "./util.po";
 import { SideNav } from "./sidenav.po";
@@ -82,4 +82,30 @@ xdescribe("MacroRugoRemous - ", () => {
                 const errorMsg = await $("div .select-error-message");
                 expect(await isElementDisplayed(errorMsg)).toBe(true);
         });
+        it("Generate from PAM", async () => {
+
+                // Open PAM with default values
+                await openCalculator(11, navBar, listPage);
+
+                // calculate PAM
+                const calcButtonCl = await calcPage.getCalculateButton();
+                await calcButtonCl.click();
+                await browser.pause(200);
+
+                // make sure "Generate backwater curve" button is visible (it might be hidden behind navbar)
+                await scrollPageToTop();
+                // generate Macrorugo backwater curve
+                const genButton = await calcPage.getButton("generate-backwater-curve");
+                await genButton.click();
+                await browser.pause(1000);
+
+                // calculate PAB
+                const calcButtonMRCR = await calcPage.getCalculateButton();
+                await calcButtonMRCR.click();
+                await browser.pause(500);
+
+                // check that result is not empty
+                const hasResults = await calcPage.hasResults();
+                expect(hasResults).toBe(true);
+        });
 });
-- 
GitLab