53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
|
|
const preReleaseHost = "frontend-test.banlv-ai.com";
|
|
const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? "";
|
|
|
|
test.describe("pre-release email login smoke", () => {
|
|
test.skip(
|
|
!baseURL.includes(preReleaseHost),
|
|
`Run this test only with PLAYWRIGHT_BASE_URL pointing at ${preReleaseHost}.`,
|
|
);
|
|
|
|
test("guest can switch to email login from other sign-in options and return to chat", async ({
|
|
page,
|
|
}) => {
|
|
await page.goto("/splash", { waitUntil: "domcontentloaded" });
|
|
|
|
await expect(page.getByRole("button", { name: "Skip" })).toBeVisible();
|
|
await Promise.all([
|
|
page.waitForURL(/\/chat(?:\?.*)?$/, { timeout: 20_000 }),
|
|
page.getByRole("button", { name: "Skip" }).click(),
|
|
]);
|
|
|
|
await expect(
|
|
page.getByRole("button", { name: "Sign up to unlock more features" }),
|
|
).toBeVisible();
|
|
await Promise.all([
|
|
page.waitForURL(/\/auth(?:\?.*)?$/, { timeout: 20_000 }),
|
|
page
|
|
.getByRole("button", { name: "Sign up to unlock more features" })
|
|
.click(),
|
|
]);
|
|
|
|
await page.getByRole("button", { name: "Other Sign In Options" }).click();
|
|
await expect(
|
|
page.getByRole("dialog", { name: "Other sign-in options" }),
|
|
).toBeVisible();
|
|
|
|
await page.getByRole("button", { name: "Email Sign In" }).click();
|
|
await expect(page.getByPlaceholder("Email")).toHaveValue(
|
|
"chanwillian0@gmail.com",
|
|
);
|
|
await expect(page.getByPlaceholder("Password")).toHaveValue("12345678");
|
|
|
|
await Promise.all([
|
|
page.waitForURL(/\/chat(?:\?.*)?$/, { timeout: 20_000 }),
|
|
page.getByRole("button", { name: "Login" }).click(),
|
|
]);
|
|
|
|
await expect(page.getByRole("button", { name: "Menu" })).toBeVisible();
|
|
await expect(page.getByRole("textbox", { name: "Message" })).toBeVisible();
|
|
});
|
|
});
|