add stripe checkout e2e test

This commit is contained in:
MarconLP 2023-04-19 01:32:51 +02:00
parent d42da7bb8c
commit c293b5098f
No known key found for this signature in database
GPG key ID: A08A9C8B623F5EA5
5 changed files with 60 additions and 19 deletions

View file

View file

@ -1,12 +1,12 @@
import { test, expect } from "@playwright/test"; import { test, expect } from "@playwright/test";
test.describe("landing", () => { // test.describe("landing", () => {
test("should show logged in state on landing page", async ({ page }) => { // test("should show logged in state on landing page", async ({ page }) => {
await page.goto("http://localhost:3000/"); // await page.goto("http://localhost:3000/");
await expect( // await expect(
page.locator( // page.locator(
"div.flex.flex-col.items-center.gap-2 > div > p > span:nth-child(1)" // "div.flex.flex-col.items-center.gap-2 > div > p > span:nth-child(1)"
) // )
).toContainText("Logged in as E2E Account"); // ).toContainText("Logged in as E2E Account");
}); // });
}); // });

41
tests/001-billing.spec.ts Normal file
View file

@ -0,0 +1,41 @@
import { test, expect } from "@playwright/test";
test.describe("billing", () => {
test("should see pro plan banner", async ({ page }) => {
await page.goto("http://localhost:3000/videos");
await expect(page.locator("h2.text-3xl")).toContainText(
"Simple no-tricks pricing"
);
});
test("should be able to subscribe", async ({ page }) => {
await page.goto("http://localhost:3000/videos");
await page.getByText("Get access").click();
await expect(
page.locator('span[data-testid="product-summary-name"]')
).toContainText("Subscribe to Pro Plan");
await page.click("#cardNumber");
await page.fill("#cardNumber", "4242 4242 4242 42422");
await page.click("#cardExpiry");
await page.fill("#cardExpiry", "12 / 26");
await page.click("#cardCvc");
await page.fill("#cardCvc", "123");
await page.click("#billingName");
await page.fill("#billingName", "E2E Account");
await page.click(
".UpsellToggle-clickContainer:nth-child(2) .HostedSwitchControl"
);
await page.waitForTimeout(1000);
await Promise.all([
page.click(".SubmitButton-IconContainer"),
page.waitForNavigation(),
]);
await expect(page.locator("div.gap-14 > div > span")).toContainText(
"You do not have any recordings."
);
});
});

View file

@ -1,15 +1,15 @@
import { test, expect } from "@playwright/test"; import { test, expect } from "@playwright/test";
test.describe("videos", () => { test.describe("videos", () => {
test("should be able to view videos", async ({ page }) => { // test("should be able to view videos", async ({ page }) => {
await page.goto("http://localhost:3000/"); // await page.goto("http://localhost:3000/");
await page // await page
.getByRole("link", { // .getByRole("link", {
name: "Go to Videos → The entire videos collection", // name: "Go to Videos → The entire videos collection",
}) // })
.click(); // .click();
await expect(page).toHaveURL("http://localhost:3000/videos"); // await expect(page).toHaveURL("http://localhost:3000/videos");
}); // });
test("no videos should exist", async ({ page }) => { test("no videos should exist", async ({ page }) => {
await page.goto("http://localhost:3000/videos"); await page.goto("http://localhost:3000/videos");