diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index c9276cad4bcb8b81467247632aa5b7db2bbe7336..b47d2ef68a68a78295402fcbea5989e0c5304d2c 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -50,6 +50,14 @@ export class CalculatorPage { return element.all(by.css('mat-button-toggle.radio_cal[ng-reflect-checked="true"]')); } + getAddStructureButton() { + return element(by.css("fieldset-container .hyd-window-btns button.add-structure")); + } + + getAllLinkButtons() { + return element.all(by.css("mat-button-toggle.radio_link")); + } + scrollTo(elt: ElementFinder) { browser.controlFlow().execute(function() { browser.executeScript("arguments[0].scrollIntoView(true)", elt.getWebElement()); diff --git a/e2e/load-linked-params.e2e-spec.ts b/e2e/load-linked-params.e2e-spec.ts index 56f84364aade223b1b5dc7668fce26da822c81ff..2d6e91a20929090e78898ad6c23f87d7d22799c9 100644 --- a/e2e/load-linked-params.e2e-spec.ts +++ b/e2e/load-linked-params.e2e-spec.ts @@ -1,4 +1,5 @@ import { AppPage } from "./app.po"; +import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { SideNav } from "./sidenav.po"; @@ -11,6 +12,7 @@ import { browser } from "protractor"; */ describe("ngHyd − load session with multiple linked parameters", () => { let startPage: AppPage; + let listPage: ListPage; let calcPage: CalculatorPage; let navbar: Navbar; let sidenav: SideNav; @@ -20,10 +22,11 @@ describe("ngHyd − load session with multiple linked parameters", () => { calcPage = new CalculatorPage(); navbar = new Navbar(); sidenav = new SideNav(); + listPage = new ListPage(); } beforeEach(init); - it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => { + it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => { await startPage.navigateTo(); await navbar.clickMenuButton(); @@ -94,4 +97,30 @@ describe("ngHyd − load session with multiple linked parameters", () => { expect(lo_brv).toEqual("LargeurBerge (Sec. param.)"); }); + it("when creating parallel structures, devices should be linkabke to one another", async () => { + + // 1. check Lois d'ouvrages + await startPage.navigateTo(); + await listPage.clickMenuEntryForCalcType(8); + await calcPage.getAddStructureButton().click(); + const nb1 = await calcPage.getAllLinkButtons().count(); + expect(nb1).toBe(8); // link buttons on children but not on parent + + // 2. check Passe à bassin: Cloisons + await startPage.navigateTo(); + await listPage.clickMenuEntryForCalcType(10); + await calcPage.getAddStructureButton().click(); + const nb2 = await calcPage.getAllLinkButtons().count(); + expect(nb2).toBe(4); // link buttons on children but not on parent + + + // 3. check Lois de déversoirs dénoyés + await startPage.navigateTo(); + await listPage.clickMenuEntryForCalcType(9); + await calcPage.getAddStructureButton().click(); + const nb3 = await calcPage.getAllLinkButtons().count(); + expect(nb3).toBe(6); // link buttons on children but not on parent + + }); + }); diff --git a/src/app/components/field-set/field-set.component.html b/src/app/components/field-set/field-set.component.html index 444001156b2ae4af9e51c3cfb3452a50a53fbf23..b87bbe724705e0503c85490c8e4cbdabb19188d8 100644 --- a/src/app/components/field-set/field-set.component.html +++ b/src/app/components/field-set/field-set.component.html @@ -3,7 +3,7 @@ {{ title }} </mat-card-title> <div *ngIf="showButtons" class="hyd-window-btns"> - <button type="button" mat-icon-button (click)="onAddClick()"> + <button type="button" mat-icon-button (click)="onAddClick()" class="add-structure"> <mat-icon>add_box</mat-icon> </button> <button type="button" mat-icon-button [disabled]="! enableRemoveButton" (click)="onRemoveClick()"> diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts index e147f1f9f14da2601acc53b70c9baa0b22eb673b..47a79d393a40e8639ce46e37d42d4327196495a3 100644 --- a/src/app/components/param-field-line/param-field-line.component.ts +++ b/src/app/components/param-field-line/param-field-line.component.ts @@ -203,8 +203,8 @@ export class ParamFieldLineComponent implements OnChanges { } // ou un seul module de calcul "ouvrages parallèles" - if (this._formService.formulaires[0].calculatorType === CalculatorType.ParallelStructure) { - const ps: ParallelStructure = this._formService.formulaires[0].currentNub as ParallelStructure; + if (this._formService.formulaires[0].currentNub instanceof ParallelStructure) { + const ps: ParallelStructure = this._formService.formulaires[0].currentNub; if (ps.structures.length > 1) { return this._formService.getLinkableValues(this.param).length > 0; }