Commit 77de25ff authored by Mathias Chouet's avatar Mathias Chouet :spaghetti:
Browse files

Nouveau test e2e pour le calcul de paramètres liés

Showing with 504 additions and 6 deletions
+504 -6
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";
import { browser } from "protractor";
/**
* For all calculators, try to calculate every parameter: check that only one parameter
......
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";
import { browser } from "protractor";
/**
* Uses an example configuration to calculate :
* - with a parameter linked to a single parameter
* - with a parameter linked to a single parameter, plus local variated parameter
* - with a parameter linked to a variated parameter
* - with a parameter linked to a single result
* - with a parameter linked to a single result, plus local variated parameter
* - with a parameter linked to a variated result
* - with a parameter linked to a single extra result
* - with a parameter linked to a single extra result, plus local variated parameter
* - with a parameter linked to a variated extra result
*
* => plus all those combinations in indeirect link mode (linked parameter target
* is also a linked parameter)
*/
describe("ngHyd − calculate with linked parameters", () => {
let listPage: ListPage;
let calcPage: CalculatorPage;
let navBar: Navbar;
let startPage: AppPage;
beforeEach(() => {
listPage = new ListPage();
calcPage = new CalculatorPage();
navBar = new Navbar();
startPage = new AppPage();
});
async function computeAndCheckPresenceOfResults() {
// check that "compute" button is active
const calcButton = calcPage.getCalculateButton();
const disabledState = await calcButton.getAttribute("disabled");
expect(disabledState).not.toBe("true");
// click "compute" button
await calcButton.click();
// check that result is not empty
const hasResults = await calcPage.hasResults();
expect(hasResults).toBe(true);
}
it(" − direct links : parameter linked to a single parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y = calcPage.getInputById("Y");
await calcPage.setParamMode(Y, "link");
const sel = await calcPage.getLinkedValueSelect(Y);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a single parameter, plus local variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y = calcPage.getInputById("Y");
await calcPage.setParamMode(Y, "link");
const sel = await calcPage.getLinkedValueSelect(Y);
await calcPage.changeSelectValue(sel, 1);
// vary W
const W = calcPage.getInputById("W");
await calcPage.setParamMode(W, "var");
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// vary Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "var");
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a single result", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a single result, plus local variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 1);
// vary W
const W = calcPage.getInputById("W");
await calcPage.setParamMode(W, "var");
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a variated result", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// vary Q
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "var");
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (R uniforme)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a single extra result", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Déversoirs dénoyés)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a single extra result, plus local variated parameter", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Déversoirs dénoyés)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 1);
// vary YB
const YB = calcPage.getInputById("YB");
await calcPage.setParamMode(YB, "var");
await computeAndCheckPresenceOfResults();
});
it(" − direct links : parameter linked to a variated extra result", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// vary BR
const BR = calcPage.getInputById("BR");
await calcPage.setParamMode(BR, "var");
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Déversoirs dénoyés)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 1);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const sel = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 3);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single parameter, plus local variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y = calcPage.getInputById("Y");
await calcPage.setParamMode(Y, "link");
const sel = await calcPage.getLinkedValueSelect(Y);
await calcPage.changeSelectValue(sel, 3);
// vary W
const W = calcPage.getInputById("W");
await calcPage.setParamMode(W, "var");
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// vary Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "var");
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 3);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single result", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 3);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single result, plus local variated parameter", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 3);
// vary W
const W = calcPage.getInputById("W");
await calcPage.setParamMode(W, "var");
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a variated result", async () => {
// create a Régime uniforme
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(3);
// vary Q
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "var");
// calculate Y
const Y1 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y1, "cal");
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Y to Y (R uniforme)
const Yproxy = calcPage.getInputById("Y");
await calcPage.setParamMode(Yproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Yproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a PAB : dimensions
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(5);
// link Y to Y (Sec param)
const Y2 = calcPage.getInputById("Y");
await calcPage.setParamMode(Y2, "link");
const sel = await calcPage.getLinkedValueSelect(Y2);
await calcPage.changeSelectValue(sel, 3);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single extra result", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Q to CvQT (Déversoirs dénoyés)
const Qproxy = calcPage.getInputById("Q");
await calcPage.setParamMode(Qproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Qproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Sec param)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 3);
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a single extra result, plus local variated parameter", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Q to CvQT (Déversoirs dénoyés)
const Qproxy = calcPage.getInputById("Q");
await calcPage.setParamMode(Qproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Qproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Sec param)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 3);
// vary YB
const YB = calcPage.getInputById("YB");
await calcPage.setParamMode(YB, "var");
await computeAndCheckPresenceOfResults();
});
it(" − indirect links : parameter linked to a variated extra result", async () => {
// create a Déversoirs dénoyés
await startPage.navigateTo();
await listPage.clickMenuEntryForCalcType(9);
// vary BR
const BR = calcPage.getInputById("BR");
await calcPage.setParamMode(BR, "var");
// create a Section paramétrée
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(2);
// link Q to CvQT (Déversoirs dénoyés)
const Qproxy = calcPage.getInputById("Q");
await calcPage.setParamMode(Qproxy, "link");
const selYproxy = await calcPage.getLinkedValueSelect(Qproxy);
await calcPage.changeSelectValue(selYproxy, 1);
// create a Régime uniforme
await navBar.clickNewCalculatorButton();
await listPage.clickMenuEntryForCalcType(3);
// link Q to CvQT (Sec param)
const Q = calcPage.getInputById("Q");
await calcPage.setParamMode(Q, "link");
const sel = await calcPage.getLinkedValueSelect(Q);
await calcPage.changeSelectValue(sel, 3);
await computeAndCheckPresenceOfResults();
});
});
......@@ -120,11 +120,23 @@ export class CalculatorPage {
await button.click();
// for "var" mode, close the modal
if (mode === "var") {
await browser.sleep(500);
await browser.sleep(500); // wait for the modal to appear
await element(by.css("dialog-edit-param-values .mat-dialog-actions button")).click();
await browser.sleep(500); // wait for the navbar to reappear after modal dismissal
}
}
/**
* @param elt an <input> element
*/
async getLinkedValueSelect(elt: ElementFinder): Promise<ElementFinder> {
// get parent (div.container)
const container = await this.findParentContainer(elt) as ElementFinder;
// find <select>
const select = container.element(by.css("param-link mat-select"));
return select;
}
/**
* Returns an object containing all the calculator's inputs values, indexed
* by parameter ID
......
......@@ -10,7 +10,7 @@ import { browser } from "protractor";
* from one to another
* @TODO les valeurs des Select sont comparées au français, pas très générique :/
*/
describe("ngHyd − load session with multiple linked parameters", () => {
describe("ngHyd − load session with multiple linked parameters", () => {
let startPage: AppPage;
let listPage: ListPage;
let calcPage: CalculatorPage;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment