From 68617e6dcf6c9b74c6d49f0b4bc07edfd83efc94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Mon, 14 Nov 2022 08:56:49 +0100
Subject: [PATCH] test(e2e): check that fish ladder results don't change when
 modifying discharge law and set it back

---
 e2e/pab-modify-discharge-law.e2e-spec.ts | 71 ++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 e2e/pab-modify-discharge-law.e2e-spec.ts

diff --git a/e2e/pab-modify-discharge-law.e2e-spec.ts b/e2e/pab-modify-discharge-law.e2e-spec.ts
new file mode 100644
index 000000000..5acfd13bd
--- /dev/null
+++ b/e2e/pab-modify-discharge-law.e2e-spec.ts
@@ -0,0 +1,71 @@
+import { browser, by, element } from "protractor";
+import { CalculatorPage } from "./calculator.po";
+import { Navbar } from "./navbar.po";
+import { PreferencesPage } from "./preferences.po";
+
+describe("Check that fish ladder example results do not change when modifying discharge law and setting it back to its initial value - ", () => {
+    let prefPage: PreferencesPage;
+    let navBar: Navbar;
+    let calcPage: CalculatorPage;
+
+    beforeEach(async () => {
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
+        calcPage = new CalculatorPage();
+
+        // disable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await browser.sleep(200);
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    it("on first basin", async () => {
+        //browser.manage().window().setPosition(2000, 30);
+
+        // start page
+        await navBar.clickNewCalculatorButton();
+        await browser.sleep(200);
+        
+        // open 1st example
+        const examples = await element.all(by.css("#examples-list .load-example"));
+        await examples[0].click();
+        await browser.sleep(200);
+
+        // select fish ladder module
+        await navBar.openNthCalculator(5);
+        await browser.sleep(200);
+        
+        // click "compute" button
+        const calcButton = calcPage.getCalculateButton();
+        await calcButton.click();
+        await browser.sleep(500);
+        
+        // upstream basin water elevation should be 30.140
+        const results_tds = element.all(by.css("pab-results-table td"));
+        expect(await results_tds.get(1).getText()).toBe("30.140");
+
+        // modify first basin discharge law
+        await browser.executeScript("window.scrollTo(0, 0);");
+        const dischargeSelectors = element.all(by.css("td > mat-select"));
+        const sel1 = dischargeSelectors.get(0);
+        await calcPage.changeSelectValue(sel1, 2);
+        await browser.sleep(200);
+
+        // click "compute" button
+        await calcButton.click();
+        await browser.sleep(500);
+
+        // set back first basin discharge law to initial value
+        await browser.executeScript("window.scrollTo(0, 0);");
+        await calcPage.changeSelectValue(sel1, 1);
+        await browser.sleep(200);
+
+        // click "compute" button
+        await calcButton.click();
+        await browser.sleep(500);
+
+        // upstream basin water elevation should still be 30.140
+        expect(await results_tds.get(1).getText()).toBe("30.140");
+    });
+});
-- 
GitLab