28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
|
|
import { expect, test } from "@playwright/test";
|
||
|
|
import { signInAs } from "./fixtures/auth";
|
||
|
|
|
||
|
|
test("therapist signs in and sees their dashboard", async ({ page }) => {
|
||
|
|
await signInAs(page, "therapist", "/therapist");
|
||
|
|
// /therapist redirects to /therapist/bookings.
|
||
|
|
await page.goto("/therapist");
|
||
|
|
await expect(page).toHaveURL(/\/therapist\/bookings$/);
|
||
|
|
|
||
|
|
// Top nav exposes "My schedule" → bookings, and "Availability".
|
||
|
|
await expect(page.getByRole("link", { name: /^my schedule$/i })).toBeVisible();
|
||
|
|
await expect(page.getByRole("link", { name: /^availability$/i })).toBeVisible();
|
||
|
|
|
||
|
|
await page.getByRole("link", { name: /^availability$/i }).click();
|
||
|
|
await expect(page).toHaveURL(/\/therapist\/availability/);
|
||
|
|
await expect(page.getByRole("heading", { level: 1 })).toBeVisible();
|
||
|
|
|
||
|
|
await page.getByRole("link", { name: /^my schedule$/i }).click();
|
||
|
|
await expect(page).toHaveURL(/\/therapist\/bookings/);
|
||
|
|
await expect(page.getByRole("heading", { level: 1 })).toBeVisible();
|
||
|
|
});
|
||
|
|
|
||
|
|
test("non-therapist (customer) hitting /therapist sees the deny screen", async ({ page }) => {
|
||
|
|
await signInAs(page, "customer", "/therapist");
|
||
|
|
await page.goto("/therapist");
|
||
|
|
await expect(page.getByRole("heading", { name: /therapists only/i })).toBeVisible();
|
||
|
|
});
|