From a1fa77c2f90898dee253626d1c655ee8db298efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr> Date: Wed, 6 Apr 2022 11:56:01 +0200 Subject: [PATCH] fix: some e2e tests fail due to "empty fields on calculator creation" option --- e2e/calc-all-examples.e2e-spec.ts | 30 +++++++++++++++---- e2e/compute-reset-chained-links.e2e-spec.ts | 13 +++++++- e2e/load-linked-params.e2e-spec.ts | 4 +++ protractor.conf.js | 2 +- .../app-setup/app-setup.component.html | 2 +- 5 files changed, 43 insertions(+), 8 deletions(-) diff --git a/e2e/calc-all-examples.e2e-spec.ts b/e2e/calc-all-examples.e2e-spec.ts index 957364fc6..4dae4b1dd 100644 --- a/e2e/calc-all-examples.e2e-spec.ts +++ b/e2e/calc-all-examples.e2e-spec.ts @@ -2,6 +2,8 @@ import { ListPage } from "./list.po"; import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { browser, by, element } from "protractor"; +import { PreferencesPage } from "./preferences.po"; +import { SideNav } from "./sidenav.po"; /** * Calculate all modules of all examples @@ -11,22 +13,40 @@ describe("ngHyd − example sessions −", async () => { let listPage: ListPage; let calcPage: CalculatorPage; let navbar: Navbar; + let prefPage: PreferencesPage; + let sideNav: SideNav; beforeAll(() => { jasmine.DEFAULT_TIMEOUT_INTERVAL = 100 * 1000; - }); - - it("calcul de tous les modules de tous les exemples −", async () => { listPage = new ListPage(); calcPage = new CalculatorPage(); navbar = new Navbar(); - listPage = new ListPage(); + prefPage = new PreferencesPage(); + sideNav = new SideNav(); + }); + + it("calcul de tous les modules de tous les exemples −", async () => { + // disable evil option "empty fields on module creation" + await prefPage.navigateTo(); + await prefPage.disableEvilEmptyFields(); + await browser.sleep(200); // for each calculator let lastExampleFound = true; let i = 0; while (lastExampleFound) { - await listPage.navigateTo(); + if (i == 0) { + // start page + await navbar.clickNewCalculatorButton(); + await browser.sleep(200); + } + else { + // empty session + await navbar.clickMenuButton(); + await browser.sleep(200); + await sideNav.clickNewSessionButton(); + await browser.sleep(200); + } const examples = await element.all(by.css("#examples-list .load-example")); if (examples.length > i) { diff --git a/e2e/compute-reset-chained-links.e2e-spec.ts b/e2e/compute-reset-chained-links.e2e-spec.ts index 2767c9d96..65e2e4e95 100644 --- a/e2e/compute-reset-chained-links.e2e-spec.ts +++ b/e2e/compute-reset-chained-links.e2e-spec.ts @@ -3,6 +3,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { SideNav } from "./sidenav.po"; import { browser } from "protractor"; +import { PreferencesPage } from "./preferences.po"; /** * Load a session containing 3 calculators, having linked parameters @@ -16,12 +17,14 @@ describe("ngHyd − compute then reset chained results − ", () => { let calcPage: CalculatorPage; let navbar: Navbar; let sidenav: SideNav; + let prefPage: PreferencesPage; function init() { startPage = new AppPage(); calcPage = new CalculatorPage(); navbar = new Navbar(); sidenav = new SideNav(); + prefPage = new PreferencesPage(); } beforeEach(init); @@ -128,8 +131,16 @@ describe("ngHyd − compute then reset chained results − ", () => { }); it("when loading session-results-invalidation.json, results reset should not be triggered on calculation", async () => { + // disable evil option "empty fields on module creation" + await prefPage.navigateTo(); + await prefPage.disableEvilEmptyFields(); + await browser.sleep(200); + + // start page + await navbar.clickNewCalculatorButton(); + await browser.sleep(200); + // load session file - await startPage.navigateTo(); await navbar.clickMenuButton(); await browser.sleep(200); await sidenav.clickLoadSessionButton(); diff --git a/e2e/load-linked-params.e2e-spec.ts b/e2e/load-linked-params.e2e-spec.ts index 8e87b5f94..00b262f24 100644 --- a/e2e/load-linked-params.e2e-spec.ts +++ b/e2e/load-linked-params.e2e-spec.ts @@ -34,6 +34,10 @@ describe("ngHyd − load session with multiple linked parameters − ", () => { await prefPage.navigateTo(); await prefPage.changeLanguage(1); // fr await browser.sleep(200); + // disable evil option "empty fields on module creation" + await prefPage.disableEvilEmptyFields(); + await browser.sleep(200); + // start page await navbar.clickNewCalculatorButton(); }); diff --git a/protractor.conf.js b/protractor.conf.js index 3077d88c4..d474c230b 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -61,7 +61,7 @@ exports.config = { require('ts-node').register({ project: 'e2e/tsconfig.e2e.json' }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: "pretty" } })); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); browser.manage().window().setSize(1600, 1000); browser.driver.sendChromiumCommand('Page.setDownloadBehavior', { behavior: 'allow', diff --git a/src/app/components/app-setup/app-setup.component.html b/src/app/components/app-setup/app-setup.component.html index 87f52357a..bcd394688 100644 --- a/src/app/components/app-setup/app-setup.component.html +++ b/src/app/components/app-setup/app-setup.component.html @@ -102,4 +102,4 @@ </mat-card-content> </mat-card> -</div> \ No newline at end of file +</div> -- GitLab