diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts
index f2b98b2d9f606cd83c86316d46287b1e493676c1..44930c8cc59d77e83648e4ef65ecaa1e5a3b6d16 100644
--- a/e2e/calculator.po.ts
+++ b/e2e/calculator.po.ts
@@ -90,6 +90,11 @@ export class CalculatorPage {
         return element(by.id(id));
     }
 
+    async isMatSelectPresent(id: string) {
+        const sel: ElementFinder = element(by.css("mat-select#" + id));
+        return await sel.isPresent();
+    }
+
     async getSelectValueText(select: ElementFinder) {
         return await select.element(by.css(".mat-select-value-text > span")).getText();
     }
@@ -176,6 +181,11 @@ export class CalculatorPage {
         return tr.element(by.css("td:nth-of-type(" + n + ")"));
     }
 
+    async isNgParamPresent(id: string) {
+        const inp: ElementFinder = element(by.css("ngparam-input input#" + id));
+        return await inp.isPresent();
+    }
+
     async inputHasCalcModeButton(input: ElementFinder) {
         // get parent (div.container)
         const container = await this.findParentContainer(input);
diff --git a/e2e/pressure-loss.e2e-spec.ts b/e2e/pressure-loss.e2e-spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..af37c218b413779f158d755004ae446baf6a5fc6
--- /dev/null
+++ b/e2e/pressure-loss.e2e-spec.ts
@@ -0,0 +1,77 @@
+import { ListPage } from "./list.po";
+import { Navbar } from "./navbar.po";
+import { browser, by, element } from "protractor";
+import { CalculatorPage } from "./calculator.po";
+import { PreferencesPage } from "./preferences.po";
+import { changeSelectValue } from "./util.po";
+
+describe("Pressure loss - ", () => {
+    let listPage: ListPage;
+    let navBar: Navbar;
+    let calcPage: CalculatorPage;
+    let prefPage: PreferencesPage;
+
+    beforeAll(async () => {
+        listPage = new ListPage();
+        navBar = new Navbar();
+        calcPage = new CalculatorPage();
+        prefPage = new PreferencesPage();
+    });
+
+    beforeEach(async () => {
+        // enable evil option "empty fields on module creation"
+        await prefPage.navigateTo();
+        await prefPage.disableEvilEmptyFields();
+        await browser.sleep(200);
+    });
+
+    describe("modify pressure loss law displays the appropriate fields - ", () => {
+        it("Lechapt&Calmon", async () => {
+            // open "pressure loss" calculator
+            await navBar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(35);
+            await browser.sleep(200);
+
+            // select Lechapt-Calmon pressure loss law
+            const materialSelect = calcPage.getSelectById("select_pressurelosstype");
+            await changeSelectValue(materialSelect, 0);
+            await browser.sleep(200);
+
+            // check inputs presence
+            expect(await calcPage.isNgParamPresent("Q")).toBe(true);
+            expect(await calcPage.isNgParamPresent("D")).toBe(true);
+            expect(await calcPage.isNgParamPresent("J")).toBe(true); // en calcul (donc id=calc_J mais ça marche quand même !)
+            expect(await calcPage.isNgParamPresent("Lg")).toBe(true);
+            expect(await calcPage.isNgParamPresent("Kloc")).toBe(true);
+
+            // check material select
+            expect(await calcPage.isMatSelectPresent("select_material")).toBe(true);
+        });
+
+        it("Strickler", async () => {
+            browser.manage().window().setPosition(2000, 30);
+
+            // open "pressure loss" calculator
+            await navBar.clickNewCalculatorButton();
+            await listPage.clickMenuEntryForCalcType(35);
+            await browser.sleep(200);
+
+            // select Strickler pressure loss law
+            const materialSelect = calcPage.getSelectById("select_pressurelosstype");
+            await changeSelectValue(materialSelect, 1);
+            await browser.sleep(200);
+            debugger
+
+            // check inputs presence
+
+            const ks = element(by.id("0_Ks"));
+            expect(await ks.isPresent()).toBe(true); // isNgParamPresent does not work on "0_Ks". Why ? Mystery...
+
+            expect(await calcPage.isNgParamPresent("Q")).toBe(true);
+            expect(await calcPage.isNgParamPresent("D")).toBe(true);
+            expect(await calcPage.isNgParamPresent("J")).toBe(true);
+            expect(await calcPage.isNgParamPresent("Lg")).toBe(true);
+            expect(await calcPage.isNgParamPresent("Kloc")).toBe(true);
+        });
+    });
+});
diff --git a/src/app/formulaire/definition/form-pressureloss.ts b/src/app/formulaire/definition/form-pressureloss.ts
index 9260bc79ae47f9098291a57b6ef35efb2d3c3409..4329b0879880205fdf3031303eb091c6be0094ff 100644
--- a/src/app/formulaire/definition/form-pressureloss.ts
+++ b/src/app/formulaire/definition/form-pressureloss.ts
@@ -38,7 +38,7 @@ export class FormulairePressureLoss extends FormulaireFixedVar {
     public update(sender: IObservable, data: any) {
         // if (sender instanceof FieldSet && sender.id === "fs_pressureloss_law" && data.action === "propertyChange") {
         if (data.action === "propertyChange") {
-            if (data.name === "pressurelosstype") {
+            if (data.name === "pressureLossType") {
                 // changement de propriété du FieldSet contenant le select de choix du type de perte de charge
 
                 // replace underlying pressure loss law without replacing whole Nub