From 1ba9021a2aefee4b13fc274dc6578742f32f0df1 Mon Sep 17 00:00:00 2001 From: Joseph Andersen <12385932+jpandersen87@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:24:40 -0500 Subject: [PATCH] Create E2E tests for the Release Notes and Case Studies pages (#15710) * Create E2E tests for the Release Notes, Case Studies, Roadmap pages Fixes #14777 #14775 #14774 --- .../e2e/pages/public/about/case-studies.ts | 17 ++++++ .../e2e/pages/public/about/release-notes.ts | 17 ++++++ .../all/public/about/case-studies.spec.ts | 56 +++++++++++++++++++ .../all/public/about/release-notes.spec.ts | 56 +++++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 frontend-react/e2e/pages/public/about/case-studies.ts create mode 100644 frontend-react/e2e/pages/public/about/release-notes.ts create mode 100644 frontend-react/e2e/spec/all/public/about/case-studies.spec.ts create mode 100644 frontend-react/e2e/spec/all/public/about/release-notes.spec.ts diff --git a/frontend-react/e2e/pages/public/about/case-studies.ts b/frontend-react/e2e/pages/public/about/case-studies.ts new file mode 100644 index 00000000000..d856cd823e3 --- /dev/null +++ b/frontend-react/e2e/pages/public/about/case-studies.ts @@ -0,0 +1,17 @@ +import { BasePage, BasePageTestArgs } from "../../BasePage"; + +export class AboutCaseStudiesPage extends BasePage { + constructor(testArgs: BasePageTestArgs) { + super( + { + url: "/about/case-studies", + title: "ReportStream case studies", + heading: testArgs.page.getByRole("heading", { + name: "Case studies", + exact: true, + }), + }, + testArgs, + ); + } +} diff --git a/frontend-react/e2e/pages/public/about/release-notes.ts b/frontend-react/e2e/pages/public/about/release-notes.ts new file mode 100644 index 00000000000..b5de124a158 --- /dev/null +++ b/frontend-react/e2e/pages/public/about/release-notes.ts @@ -0,0 +1,17 @@ +import { BasePage, BasePageTestArgs } from "../../BasePage"; + +export class AboutReleaseNotesPage extends BasePage { + constructor(testArgs: BasePageTestArgs) { + super( + { + url: "/about/release-notes", + title: "ReportStream release notes", + heading: testArgs.page.getByRole("heading", { + name: "Release notes", + exact: true, + }), + }, + testArgs, + ); + } +} diff --git a/frontend-react/e2e/spec/all/public/about/case-studies.spec.ts b/frontend-react/e2e/spec/all/public/about/case-studies.spec.ts new file mode 100644 index 00000000000..32c47edccdb --- /dev/null +++ b/frontend-react/e2e/spec/all/public/about/case-studies.spec.ts @@ -0,0 +1,56 @@ +import { aboutSideNav } from "../../../../helpers/internal-links"; +import { AboutCaseStudiesPage } from "../../../../pages/public/about/case-studies"; +import { test as baseTest } from "../../../../test"; + +export interface Fixtures { + aboutCaseStudiesPage: AboutCaseStudiesPage; +} + +const test = baseTest.extend({ + aboutCaseStudiesPage: async ( + { + page: _page, + isMockDisabled, + adminLogin, + senderLogin, + receiverLogin, + storageState, + isFrontendWarningsLog, + frontendWarningsLogPath, + }, + use, + ) => { + const page = new AboutCaseStudiesPage({ + page: _page, + isMockDisabled, + adminLogin, + senderLogin, + receiverLogin, + storageState, + isFrontendWarningsLog, + frontendWarningsLogPath, + }); + await page.goto(); + await use(page); + }, +}); + +test.describe( + "About / Case Studies page", + { + tag: "@smoke", + }, + () => { + test("has side nav", async ({ aboutCaseStudiesPage }) => { + await aboutCaseStudiesPage.testSidenav(aboutSideNav); + }); + + test("has correct title + heading", async ({ aboutCaseStudiesPage }) => { + await aboutCaseStudiesPage.testHeader(); + }); + + test("footer", async ({ aboutCaseStudiesPage }) => { + await aboutCaseStudiesPage.testFooter(); + }); + }, +); diff --git a/frontend-react/e2e/spec/all/public/about/release-notes.spec.ts b/frontend-react/e2e/spec/all/public/about/release-notes.spec.ts new file mode 100644 index 00000000000..2793f47c7f0 --- /dev/null +++ b/frontend-react/e2e/spec/all/public/about/release-notes.spec.ts @@ -0,0 +1,56 @@ +import { aboutSideNav } from "../../../../helpers/internal-links"; +import { AboutReleaseNotesPage } from "../../../../pages/public/about/release-notes"; +import { test as baseTest } from "../../../../test"; + +export interface Fixtures { + aboutReleaseNotesPage: AboutReleaseNotesPage; +} + +const test = baseTest.extend({ + aboutReleaseNotesPage: async ( + { + page: _page, + isMockDisabled, + adminLogin, + senderLogin, + receiverLogin, + storageState, + isFrontendWarningsLog, + frontendWarningsLogPath, + }, + use, + ) => { + const page = new AboutReleaseNotesPage({ + page: _page, + isMockDisabled, + adminLogin, + senderLogin, + receiverLogin, + storageState, + isFrontendWarningsLog, + frontendWarningsLogPath, + }); + await page.goto(); + await use(page); + }, +}); + +test.describe( + "About / Release Notes page", + { + tag: "@smoke", + }, + () => { + test("has side nav", async ({ aboutReleaseNotesPage }) => { + await aboutReleaseNotesPage.testSidenav(aboutSideNav); + }); + + test("has correct title + heading", async ({ aboutReleaseNotesPage }) => { + await aboutReleaseNotesPage.testHeader(); + }); + + test("footer", async ({ aboutReleaseNotesPage }) => { + await aboutReleaseNotesPage.testFooter(); + }); + }, +);