feat(plans): publish honest Free and Pro
This commit is contained in:
@@ -53,6 +53,36 @@ test.beforeEach(async ({ page }) => {
|
||||
await page.addInitScript(() => window.localStorage.setItem("uiLanguage", "en"));
|
||||
});
|
||||
|
||||
test("public plans stay honest, responsive and keyboard accessible", async ({ page }) => {
|
||||
for (const scheme of ["light", "dark"] as const) {
|
||||
await page.addInitScript((value) => window.localStorage.setItem("jobtracker.themeMode", value), scheme);
|
||||
await page.goto("/");
|
||||
await expect(page.getByRole("heading", { name: "Two clear plans" })).toBeVisible();
|
||||
await expect(page.locator('section[aria-labelledby^="plan-"]')).toHaveCount(2);
|
||||
await expect(page.getByRole("heading", { name: "Free", exact: true })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "Pro", exact: true })).toBeVisible();
|
||||
await expect(page.getByText(/Bring your own key|Unlimited AI|Billed monthly|Most popular/i)).toHaveCount(0);
|
||||
await expect(page.locator("html")).toHaveAttribute("data-color-scheme", scheme);
|
||||
|
||||
for (const width of [375, 768, 1440]) {
|
||||
await page.setViewportSize({ width, height: 900 });
|
||||
const overflow = await page.evaluate(() => document.documentElement.scrollWidth - document.documentElement.clientWidth);
|
||||
expect(overflow).toBeLessThanOrEqual(1);
|
||||
}
|
||||
}
|
||||
|
||||
const freeAction = page.getByRole("button", { name: "Create a Free account" });
|
||||
await freeAction.focus();
|
||||
await page.keyboard.press("Enter");
|
||||
await expect(page).toHaveURL(/\/register$/);
|
||||
|
||||
await page.goBack();
|
||||
const proAction = page.getByRole("button", { name: "Sign in to view Pro" });
|
||||
await proAction.focus();
|
||||
await page.keyboard.press("Enter");
|
||||
await expect(page).toHaveURL(/\/login$/);
|
||||
});
|
||||
|
||||
test("login establishes an authenticated session", async ({ page }) => {
|
||||
await login(page);
|
||||
await expect(page.getByText("e2e@example.test").first()).toBeVisible();
|
||||
|
||||
Reference in New Issue
Block a user