diff --git a/e2e/calculate-linked-params.e2e-spec.ts b/e2e/calculate-linked-params.e2e-spec.ts index 56f8dd05fcb11caf5909a18f4d095c1495b90f45..12e68d423b9cdda3373f74cabd60824086cfb91e 100644 --- a/e2e/calculate-linked-params.e2e-spec.ts +++ b/e2e/calculate-linked-params.e2e-spec.ts @@ -304,4 +304,44 @@ describe("ngHyd − calculate with linked parameters", () => { expect(Number(volume)).toBeCloseTo(44.565, 3); }); + it(" − a link target parameter should not be able to link to another parameter", async () => { + debugger + // create 1st PAB-Chute + await navBar.clickNewCalculatorButton(); + await browser.sleep(200); + await listPage.clickMenuEntryForCalcType(12); + await browser.sleep(200); + + // upstream water level should not have link mode (only one calculator) + const Z1_1 = calcPage.getInputById("Z1"); + expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(false); + + // create 2nd PAB-Chute + await navBar.clickNewCalculatorButton(); + await browser.sleep(200); + await listPage.clickMenuEntryForCalcType(12); + await browser.sleep(200); + + // back to 1st calculator + await navBar.clickCalculatorTab(0); + await browser.sleep(200); + + // upstream water level should have link mode (now there are 2 calculators) + expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(true); + + // back to 2nd calculator + await navBar.clickCalculatorTab(1); + await browser.sleep(200); + + // link upstream water level in 2nd calculator to upstream water level in 1st one + const Z1_2 = calcPage.getInputById("Z1"); + await calcPage.setParamMode(Z1_2, "link"); + + // back to 1st calculator + await navBar.clickCalculatorTab(0); + await browser.sleep(200); + + // upstream water level should not have link mode (already a link target) + expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(false); + }); }); diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index ed78fc4e299b9cc3de64efa3608c5159554658e8..af1e1803ce378ba967def9837500ece6da58a434 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -184,6 +184,14 @@ export class CalculatorPage { return await button.isPresent(); } + async inputHasLinkModeButton(input: ElementFinder) { + // get parent (div.container) + const container = await this.findParentContainer(input); + // find radio buttons + const button: ElementFinder = container.element(by.css("mat-button-toggle.radio_link > button")); + return await button.isPresent(); + } + /** * @returns true if "fixed mode" button linked to an input is selected */