diff --git a/e2e/predam.e2e-spec.ts b/e2e/predam.e2e-spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..335d1c0302a662c476484a6c650a04b66df68fdf
--- /dev/null
+++ b/e2e/predam.e2e-spec.ts
@@ -0,0 +1,60 @@
+import { browser, $, $$, expect } from '@wdio/globals'
+import { PreferencesPage } from './preferences.po';
+import { Navbar } from './navbar.po';
+import { CalculatorPage } from './calculator.po';
+import { changeSelectValue, scrollToElement } from './util.po';
+
+describe("predams - ", () => {
+    let prefPage: PreferencesPage;
+    let navBar: Navbar;
+    let calcPage: CalculatorPage;
+
+    beforeAll(() => {
+        prefPage = new PreferencesPage();
+        navBar = new Navbar();
+        calcPage = new CalculatorPage();
+    });
+
+    beforeEach(async () => {
+        // disable evil option "empty fields on module creation"
+        await prefPage.setEmptyFields(false);
+        await navBar.clickNewCalculatorButton();
+        await browser.pause(200);
+    });
+
+    it("bug nghyd#620", async () => {
+        // open predams example
+        const examples = await $$("#examples-list .load-example");
+        await examples[6].click();
+        await browser.pause(200);
+
+        // select "Amont-B1" basin
+        const nodes = await $$("g.nodes > g");
+        await nodes[8].click();
+        await browser.pause(200);
+
+        // modify 1st structure discharge law
+        const sel = await calcPage.getSelectById("select_loidebit");
+        await changeSelectValue(sel, 3); // Larinier
+        await browser.pause(200);
+
+        // check 2nd structure ZDV
+        const inpZDV2 = await calcPage.getInputById("1_ZDV");
+        expect(await inpZDV2.getValue()).toEqual("96.25")
+
+        // run computation
+        const calcBtn = await calcPage.getCalculateButton();
+        await calcBtn.click();
+        await browser.pause(300);
+
+        // back to inputs tab
+        const resSelectors = await $$("#pb-data-results-selector div div");
+        scrollToElement(resSelectors[0]);
+        await browser.pause(200);
+        await resSelectors[0].click();
+        await browser.pause(200);
+
+        // check 2nd structure ZDV didn't change
+        expect(await inpZDV2.getValue()).toEqual("96.25")
+    });
+});