diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index d24ffd1575d406ba513c854e15a7836e7a6b6d50..e94c27d19f31b79edbda1c4f62b61aaca39a9d98 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -96,6 +96,10 @@ export class CalculatorPage { ); } + async hasLog() { + return (await element.all(by.css("log-entry")).count()) > 0; + } + async clickSaveCalcButton() { return await element(by.css("#save-calc")).click(); } diff --git a/e2e/pab-regulee-variee.json b/e2e/pab-regulee-variee.json new file mode 100644 index 0000000000000000000000000000000000000000..3dcc919c8bab1d28352a13ee09360c1ba1419356 --- /dev/null +++ b/e2e/pab-regulee-variee.json @@ -0,0 +1 @@ +{"header":{"source":"jalhyd","format_version":"1.0","created":"2019-07-08T08:00:03.373Z"},"session":[{"uid":"dXhia3","props":{"calcType":15},"meta":{"title":"PAB régulée varié"},"children":[{"uid":"NnB5bm","props":{"calcType":10,"nodeType":0},"children":[{"uid":"cGsweT","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":76.67},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":76.53999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":76.65499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"amMxc2","props":{"calcType":10,"nodeType":0},"children":[{"uid":"MjRhNT","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":76.44},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":76.30999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":76.42499999999998},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"anZwOT","props":{"calcType":10,"nodeType":0},"children":[{"uid":"MDNnaj","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":76.21000000000001},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":76.08},{"symbol":"ZRAM","mode":"SINGLE","value":76.195},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"cDRwMD","props":{"calcType":10,"nodeType":0},"children":[{"uid":"aHQ2NT","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":75.98},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":75.85},{"symbol":"ZRAM","mode":"SINGLE","value":75.96499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"NnppdW","props":{"calcType":10,"nodeType":0},"children":[{"uid":"anYzZj","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":75.75},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":75.61999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":75.73499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"bGhzNn","props":{"calcType":10,"nodeType":0},"children":[{"uid":"MGM5bm","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":75.52},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":75.38999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":75.50499999999998},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eXY0aT","props":{"calcType":10,"nodeType":0},"children":[{"uid":"NXp6cz","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":75.29},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":75.16},{"symbol":"ZRAM","mode":"SINGLE","value":75.27499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"bnJuZ2","props":{"calcType":10,"nodeType":0},"children":[{"uid":"bDR2YX","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":75.06},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":74.92999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":75.04499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"bmEzOG","props":{"calcType":10,"nodeType":0},"children":[{"uid":"Y2ZobT","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":74.83},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":74.69999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":74.81499999999998},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"ODg5Yj","props":{"calcType":10,"nodeType":0},"children":[{"uid":"eGpueG","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":74.6},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":74.47},{"symbol":"ZRAM","mode":"SINGLE","value":74.58499999999998},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"Mzl6aD","props":{"calcType":10,"nodeType":0},"children":[{"uid":"dno5Mj","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":74.37},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":74.24},{"symbol":"ZRAM","mode":"SINGLE","value":74.35499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"NnEyY2","props":{"calcType":10,"nodeType":0},"children":[{"uid":"OGlrMG","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":74.14},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":74.00999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":74.12499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eGVvbz","props":{"calcType":10,"nodeType":0},"children":[{"uid":"d292cH","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":73.91},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":73.77999999999999},{"symbol":"ZRAM","mode":"SINGLE","value":73.89499999999998},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"Nzltdm","props":{"calcType":10,"nodeType":0},"children":[{"uid":"cm9zOT","props":{"calcType":7,"nodeType":5,"structureType":0,"loiDebit":11},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":73.68},{"symbol":"L","mode":"SINGLE","value":0.35},{"symbol":"Cd","mode":"SINGLE","value":0.65}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":3.1},{"symbol":"BB","mode":"SINGLE","value":2.5},{"symbol":"ZRMB","mode":"SINGLE","value":73.55},{"symbol":"ZRAM","mode":"SINGLE","value":73.66499999999999},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":0.773},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"MINMAX","min":74.5,"max":75,"step":0.1}],"downWall":{"uid":"Y21pOG","props":{"calcType":16},"children":[{"uid":"c216YW","props":{"calcType":7,"loiDebit":15},"children":[],"parameters":[{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Cd","mode":"SINGLE","value":0.4},{"symbol":"minZDV","mode":"SINGLE","value":73.8},{"symbol":"maxZDV","mode":"SINGLE","value":74.3},{"symbol":"DH","mode":"SINGLE","value":0.217}]}],"parameters":[]}}]} \ No newline at end of file diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts index 5377303ba29c58143d78c13548c3b97935da5d7c..6fd20d5c841f0807133e4ccd17c93c51c5d98a46 100644 --- a/e2e/pab.e2e-spec.ts +++ b/e2e/pab.e2e-spec.ts @@ -141,4 +141,32 @@ describe("ngHyd − Passe à Bassins", () => { }); + describe("load regulated variated PAB with calc errors - ", async () => { + + it("should display logs", async() => { + await startPage.navigateTo(); + // load + await navbar.clickMenuButton(); + await browser.sleep(200); + await sidenav.clickLoadSessionButton(); + await browser.sleep(200); + await sidenav.loadSessionFile("./pab-regulee-variee.json"); + await browser.sleep(500); + // check existence of the loaded module + expect(await navbar.getAllCalculatorTabs().count()).toBe(1); + await navbar.clickCalculatorTab(0); + + // calculate + const calcButton = calcPage.getCalculateButton(); + await calcButton.click(); + // check that result is not empty + const hasResults = await calcPage.hasResults(); + expect(hasResults).toBe(true); + + // check presence of logs + expect(await calcPage.hasLog()).toBe(true); + }); + + }); + }); diff --git a/src/app/components/pab-results/pab-results.component.ts b/src/app/components/pab-results/pab-results.component.ts index 3db8259a5bcf7c22240fed516ad0f642683b2cd7..975c769d97480f87442314367c058e0d2ac7fd94 100644 --- a/src/app/components/pab-results/pab-results.component.ts +++ b/src/app/components/pab-results/pab-results.component.ts @@ -95,7 +95,10 @@ export class PabResultsComponent implements DoCheck { if (result.hasGlobalLog) { log.addLog(result.globalLog); } else { - log.addLog(result.log); + // add every ResultElement log + for (const re of result.resultElements) { + log.addLog(re.log); + } } } } @@ -121,6 +124,13 @@ export class PabResultsComponent implements DoCheck { private updateResults() { let pabUpdated: boolean; let graphUpdated: boolean; + + // results or not, there might be a log + const logUpdated = this.logComponent !== undefined; + if (logUpdated) { + this.logComponent.log = this.mergedGlobalLogs; + } + if (this.hasResults) { pabUpdated = this.pabResultsTableComponent !== undefined; if (pabUpdated) { @@ -137,11 +147,6 @@ export class PabResultsComponent implements DoCheck { graphUpdated = true; } - const logUpdated = this.logComponent !== undefined; - if (logUpdated) { - this.logComponent.log = this.mergedGlobalLogs; - } - return pabUpdated && logUpdated && graphUpdated; } diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts index 93b980390b1b2ca9f99e858d4680363e16624dff..a14311da36c6a180d63dea51dda1dfcd1e10a354 100644 --- a/src/app/results/pab-results.ts +++ b/src/app/results/pab-results.ts @@ -44,6 +44,20 @@ export class PabResults extends CalculatedParamResults { ]; } + public get hasLog(): boolean { + if (this.cloisonsResults) { + for (const cr of this.cloisonsResults) { + if (cr && cr.hasLog) { + return true; + } + } + } + return ( + (this.result && this.result.hasLog) + || (this.cloisonAvalResults && this.cloisonAvalResults.hasLog) + ); + } + /** headers symbols */ public get columns() { return this._columns;