Skip to content

Commit

Permalink
Create E2E tests for the API Getting Started, documentation pages (#1…
Browse files Browse the repository at this point in the history
…5711)

* Create E2E tests for the API Getting Started, documentation pages
Fixes #14789
  • Loading branch information
jpandersen87 authored Aug 29, 2024
1 parent c2577bc commit 487d454
Show file tree
Hide file tree
Showing 9 changed files with 315 additions and 0 deletions.
23 changes: 23 additions & 0 deletions frontend-react/e2e/helpers/internal-links.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,26 @@ export const gettingStartedSideNav = [
path: "/getting-started/receiving-data",
},
];

export const developerResourcesApiSideNav = [
{
name: "ReportStream API",
path: "/developer-resources/api",
},
{
name: "Getting started",
path: "/developer-resources/api/getting-started",
},
{
name: "Documentation",
path: "/developer-resources/api/documentation",
},
{
name: "Responses from ReportStream",
path: "/developer-resources/api/documentation/responses-from-reportstream",
},
{
name: "Sample payloads and output",
path: "/developer-resources/api/documentation/sample-payloads-and-output",
},
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { BasePage, BasePageTestArgs } from "../../../../BasePage";

export class DeveloperResourcesApiDocumentationPage extends BasePage {
constructor(testArgs: BasePageTestArgs) {
super(
{
url: "/developer-resources/api/documentation",
title: "ReportStream API documentation",
heading: testArgs.page.getByRole("heading", {
name: "Documentation",
exact: true,
}),
},
testArgs,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { BasePage, BasePageTestArgs } from "../../../../BasePage";

export class ResponsesFromReportStreamPage extends BasePage {
constructor(testArgs: BasePageTestArgs) {
super(
{
url: "/developer-resources/api/documentation/responses-from-reportstream",
title: "API responses from ReportStream",
heading: testArgs.page.getByRole("heading", {
name: "Responses from ReportStream",
exact: true,
}),
},
testArgs,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { BasePage, BasePageTestArgs } from "../../../../BasePage";

export class SamplePayloadsAndOutputs extends BasePage {
constructor(testArgs: BasePageTestArgs) {
super(
{
url: "/developer-resources/api/documentation/sample-payloads-and-output",
title: "ReportStream API sample payloads and output",
heading: testArgs.page.getByRole("heading", {
name: "Sample payloads and output",
exact: true,
}),
},
testArgs,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { BasePage, BasePageTestArgs } from "../../../BasePage";

export class DeveloperResourcesApiGettingStartedPage extends BasePage {
constructor(testArgs: BasePageTestArgs) {
super(
{
url: "/developer-resources/api/getting-started",
title: "Getting started with ReportStream's API",
heading: testArgs.page.getByRole("heading", {
name: "Getting started",
exact: true,
}),
},
testArgs,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { developerResourcesApiSideNav } from "../../../../../../helpers/internal-links";
import { DeveloperResourcesApiDocumentationPage } from "../../../../../../pages/public/developer-resources/api/documentation/index";
import { test as baseTest } from "../../../../../../test";

export interface SecurityPageFixtures {
developerResourcesApiDocumentationPage: DeveloperResourcesApiDocumentationPage;
}

const test = baseTest.extend<SecurityPageFixtures>({
developerResourcesApiDocumentationPage: async (
{
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
},
use,
) => {
const page = new DeveloperResourcesApiDocumentationPage({
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
});
await page.goto();
await use(page);
},
});

test.describe(
"Developer Resources / API / Documentation / Index page",
{
tag: "@smoke",
},
() => {
test("has side nav", async ({ developerResourcesApiDocumentationPage }) => {
await developerResourcesApiDocumentationPage.testSidenav(developerResourcesApiSideNav);
});

test("has correct title + heading", async ({ developerResourcesApiDocumentationPage }) => {
await developerResourcesApiDocumentationPage.testHeader();
});

test("footer", async ({ developerResourcesApiDocumentationPage }) => {
await developerResourcesApiDocumentationPage.testFooter();
});
},
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { developerResourcesApiSideNav } from "../../../../../../helpers/internal-links";
import { ResponsesFromReportStreamPage } from "../../../../../../pages/public/developer-resources/api/documentation/responses-from-reportstream";
import { test as baseTest } from "../../../../../../test";

export interface SecurityPageFixtures {
responsesFromReportStreamPage: ResponsesFromReportStreamPage;
}

const test = baseTest.extend<SecurityPageFixtures>({
responsesFromReportStreamPage: async (
{
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
},
use,
) => {
const page = new ResponsesFromReportStreamPage({
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
});
await page.goto();
await use(page);
},
});

test.describe(
"Developer Resources / API / Documentation / Responses From ReportStream page",
{
tag: "@smoke",
},
() => {
test("has side nav", async ({ responsesFromReportStreamPage }) => {
await responsesFromReportStreamPage.testSidenav(developerResourcesApiSideNav);
});

test("has correct title + heading", async ({ responsesFromReportStreamPage }) => {
await responsesFromReportStreamPage.testHeader();
});

test("footer", async ({ responsesFromReportStreamPage }) => {
await responsesFromReportStreamPage.testFooter();
});
},
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { developerResourcesApiSideNav } from "../../../../../../helpers/internal-links";
import { SamplePayloadsAndOutputs } from "../../../../../../pages/public/developer-resources/api/documentation/sample-payloads-and-output";
import { test as baseTest } from "../../../../../../test";

export interface SecurityPageFixtures {
samplePayloadsAndOutputs: SamplePayloadsAndOutputs;
}

const test = baseTest.extend<SecurityPageFixtures>({
samplePayloadsAndOutputs: async (
{
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
},
use,
) => {
const page = new SamplePayloadsAndOutputs({
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
});
await page.goto();
await use(page);
},
});

test.describe(
"Developer Resources / API / Documentation / Sample payloads and output page",
{
tag: "@smoke",
},
() => {
test("has side nav", async ({ samplePayloadsAndOutputs }) => {
await samplePayloadsAndOutputs.testSidenav(developerResourcesApiSideNav);
});

test("has correct title + heading", async ({ samplePayloadsAndOutputs }) => {
await samplePayloadsAndOutputs.testHeader();
});

test("footer", async ({ samplePayloadsAndOutputs }) => {
await samplePayloadsAndOutputs.testFooter();
});
},
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { developerResourcesApiSideNav } from "../../../../../helpers/internal-links";
import { DeveloperResourcesApiGettingStartedPage } from "../../../../../pages/public/developer-resources/api/getting-started";
import { test as baseTest } from "../../../../../test";

export interface SecurityPageFixtures {
developerResourcesApiGettingStartedPage: DeveloperResourcesApiGettingStartedPage;
}

const test = baseTest.extend<SecurityPageFixtures>({
developerResourcesApiGettingStartedPage: async (
{
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
},
use,
) => {
const page = new DeveloperResourcesApiGettingStartedPage({
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
isFrontendWarningsLog,
frontendWarningsLogPath,
});
await page.goto();
await use(page);
},
});

test.describe(
"Developer Resources / API / Getting started page",
{
tag: "@smoke",
},
() => {
test("has side nav", async ({ developerResourcesApiGettingStartedPage }) => {
await developerResourcesApiGettingStartedPage.testSidenav(developerResourcesApiSideNav);
});

test("has correct title + heading", async ({ developerResourcesApiGettingStartedPage }) => {
await developerResourcesApiGettingStartedPage.testHeader();
});

test("footer", async ({ developerResourcesApiGettingStartedPage }) => {
await developerResourcesApiGettingStartedPage.testFooter();
});
},
);

0 comments on commit 487d454

Please sign in to comment.