diff --git a/e2e/cote-amont-aval-bief.e2e-spec.ts b/e2e/cote-amont-aval-bief.e2e-spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..e7a239a02149de505c45d7d9ff5c20ff74b0de2a --- /dev/null +++ b/e2e/cote-amont-aval-bief.e2e-spec.ts @@ -0,0 +1,112 @@ +import { browser, by, element } from "protractor"; +import { PreferencesPage } from "./preferences.po" +import { Navbar } from "./navbar.po"; +import { ListPage } from "./list.po"; +import { CalculatorPage } from "./calculator.po"; + +describe("ngHyd − up/downstream elevations of a reach", () => { + let prefPage: PreferencesPage; + let navBar: Navbar; + let listPage: ListPage; + let calcPage: CalculatorPage; + + beforeEach(async () => { + prefPage = new PreferencesPage(); + listPage = new ListPage(); + 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("check hydraulic details availability - flow calculation", async () => { + // open "up/downstream elevations of a reach" calculator + await navBar.clickNewCalculatorButton(); + await listPage.clickMenuEntryForCalcType(21); + await browser.sleep(200); + + // set upstream flow in calculate mode + const flowCalcBtn = element(by.xpath("//field-set[4]/mat-card-content/param-field-line[1]/div/div[2]/mat-button-toggle-group/mat-button-toggle[3]")); + await flowCalcBtn.click(); + + // check details buttons are disabled + const upDetailsBtn = element(by.id("generate-sp-aval")); + expect(upDetailsBtn.isEnabled()).toBe(false); + const downDetailsBtn = element(by.id("generate-sp-amont")); + expect(downDetailsBtn.isEnabled()).toBe(false); + + // set value to upstream water elevation so that flow calculation leads to no error + const upWEinput = calcPage.getInputById("Z1"); + await upWEinput.clear(); + await upWEinput.sendKeys("100.664"); + + // run calculation + const calcButton = calcPage.getCalculateButton(); + await calcButton.click(); + await browser.sleep(2000); + + // check details buttons are enabled + expect(upDetailsBtn.isEnabled()).toBe(true); + expect(downDetailsBtn.isEnabled()).toBe(true); + + // click upstream hydraulic details button + await upDetailsBtn.click(); + await browser.sleep(500); + + // a second calculator should be created + let calcs = navBar.getAllCalculatorTabs(); + expect((await calcs).length).toEqual(2); + + // click downstream hydraulic details button + await navBar.openNthCalculator(0); + await upDetailsBtn.click(); + await browser.sleep(500); + + // a third calculator should be created + calcs = navBar.getAllCalculatorTabs(); + expect((await calcs).length).toEqual(3); + }); + + it("check hydraulic details availability - upstream water elevation calculation", async () => { + // open "up/downstream elevations of a reach" calculator + await navBar.clickNewCalculatorButton(); + await listPage.clickMenuEntryForCalcType(21); + await browser.sleep(200); + + // check details buttons status + const upDetailsBtn = element(by.id("generate-sp-aval")); + expect(upDetailsBtn.isEnabled()).toBe(true); + const downDetailsBtn = element(by.id("generate-sp-amont")); + expect(downDetailsBtn.isEnabled()).toBe(false); + + // run calculation + const calcButton = calcPage.getCalculateButton(); + await calcButton.click(); + await browser.sleep(2000); + + // check details buttons are enabled + expect(upDetailsBtn.isEnabled()).toBe(true); + expect(downDetailsBtn.isEnabled()).toBe(true); + + // click upstream hydraulic details button + await upDetailsBtn.click(); + await browser.sleep(500); + + // a second calculator should be created + let calcs = navBar.getAllCalculatorTabs(); + expect((await calcs).length).toEqual(2); + + // click downstream hydraulic details button + await navBar.openNthCalculator(0); + await upDetailsBtn.click(); + await browser.sleep(500); + + // a third calculator should be created + calcs = navBar.getAllCalculatorTabs(); + expect((await calcs).length).toEqual(3); + }); +}); diff --git a/jalhyd_branch b/jalhyd_branch index d64531f1305e091791eac674c3a36d86b9e17ddd..227bffb5c45a476c187cd747d30ed0cd2a36d307 100644 --- a/jalhyd_branch +++ b/jalhyd_branch @@ -1 +1 @@ -devel +311-parametres-lies-ameliorer-les-informations-sur-la-cible diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts index 8b7f21b2a9b07e7fb2abf7554afe3f4929ef100b..04726b0ab638d7f31beac242e29246992ef7174d 100644 --- a/src/app/components/generic-calculator/calculator.component.ts +++ b/src/app/components/generic-calculator/calculator.component.ts @@ -781,7 +781,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe public get generateSPAmontEnabled(): boolean { const bief = (this._formulaire.currentNub as Bief); - if (bief.prms.Z1 === bief.calculatedParam) { + if (bief.prms.Z1 === bief.calculatedParam || bief.calculatedParam === bief.childrenPrms[0].get("Q")) { return this.hasResults && !bief.result.hasErrorMessages(); } else { // check that linked values are available, if any @@ -794,7 +794,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe public get generateSPAvalEnabled(): boolean { const bief = (this._formulaire.currentNub as Bief); - if (bief.prms.Z2 === bief.calculatedParam) { + if (bief.prms.Z2 === bief.calculatedParam || bief.calculatedParam === bief.childrenPrms[0].get("Q")) { return this.hasResults && !bief.result.hasErrorMessages(); } else { // check that linked values are available, if any