diff --git a/e2e/notes.e2e-spec.ts b/e2e/notes.e2e-spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..2419119a8fd078c4fa2d985da46bc34e7c954502 --- /dev/null +++ b/e2e/notes.e2e-spec.ts @@ -0,0 +1,92 @@ +import { browser, by, element } from "protractor"; +import { AppPage } from "./app.po"; +import { Navbar } from "./navbar.po"; +import { ListPage } from "./list.po"; +import { SideNav } from "./sidenav.po"; + +describe("check calculator notes", () => { + let startPage: AppPage; + let navBar: Navbar; + let listPage: ListPage; + let sidenav: SideNav; + + beforeEach(() => { + startPage = new AppPage(); + navBar = new Navbar(); + listPage = new ListPage(); + sidenav = new SideNav(); + }); + + it(" - notes should display properly when opened from a calculator", async () => { + await startPage.navigateTo(); + await browser.sleep(200); + + // open PAB: chute calculator + await listPage.clickMenuEntryForCalcType(12); + await browser.sleep(200); + + // open notes + await navBar.clickMenuButton(); + await browser.sleep(200); + await sidenav.clickNotesButton(); + await browser.sleep(200); + + // input some text + const ta = element(by.css("textarea")); + await ta.clear(); + await ta.sendKeys("azerty123"); + await browser.sleep(200); + + // reopen calculator + await navBar.openNthCalculator(0); + await browser.sleep(200); + + // reopen notes + await navBar.clickMenuButton(); + await browser.sleep(200); + await sidenav.clickNotesButton(); + await browser.sleep(200); + + // check text + const md = element(by.css("markdown p")); + await browser.sleep(200); + expect(await md.getText()).toEqual("azerty123"); + }); + + it(" - notes should display properly when opened from modules diagram", async () => { + await startPage.navigateTo(); + await browser.sleep(200); + + // open PAB: chute calculator + await listPage.clickMenuEntryForCalcType(12); + await browser.sleep(200); + + // open notes + await navBar.clickMenuButton(); + await browser.sleep(200); + await sidenav.clickNotesButton(); + await browser.sleep(200); + + // input some text + const ta = element(by.css("textarea")); + await ta.clear(); + await ta.sendKeys("azerty123"); + await browser.sleep(200); + + // open modules diagram + await navBar.clickMenuButton(); + await browser.sleep(200); + await sidenav.clickDiagramButton(); + await browser.sleep(200); + + // open notes + const notesLink = element(by.css("#show-notes a")); + notesLink.click(); + await browser.sleep(200); + + // check text + const md = element(by.css("markdown p")); + await browser.sleep(200); + expect(await md.getText()).toEqual("azerty123"); + }); +}); diff --git a/e2e/sidenav.po.ts b/e2e/sidenav.po.ts index 5b4060f52154b4e5df514da82fc7c279c5dfa581..596db0a86027fdaebb1db9c833e8099d9bbc34d9 100644 --- a/e2e/sidenav.po.ts +++ b/e2e/sidenav.po.ts @@ -31,6 +31,10 @@ export class SideNav { return element(by.css(`button#confirm-new-session`)); } + getNotesButton() { + return element(by.css("#side-nav-session-props")); + } + async clickLoadSessionButton() { const ncb = this.getLoadSessionButton(); await browser.sleep(500); @@ -60,4 +64,10 @@ export class SideNav { await this.getFileLoadButton().click(); } } + + async clickNotesButton() { + const nb = this.getNotesButton(); + await browser.sleep(200); + await nb.click(); + } }