mirror of
https://github.com/penpot/penpot.git
synced 2025-05-10 15:26:44 +02:00
57 lines
2.2 KiB
JavaScript
57 lines
2.2 KiB
JavaScript
import { test, expect } from "@playwright/test";
|
|
import { interceptRPC } from "./helpers/MockAPI";
|
|
|
|
const setupLoggedOutUser = async (page) => {
|
|
await interceptRPC(page, "get-profile", "get-profile-anonymous.json");
|
|
await interceptRPC(page, "login-with-password", "logged-in-user/login-with-password-success.json");
|
|
};
|
|
|
|
// TODO: maybe Playwright's fixtures are the right way to do this?
|
|
const setupDashboardUser = async (page) => {
|
|
await interceptRPC(page, "get-profile", "logged-in-user/get-profile-logged-in.json");
|
|
await interceptRPC(page, "get-teams", "logged-in-user/get-teams-default.json");
|
|
await interceptRPC(page, "get-font-variants?team-id=*", "logged-in-user/get-font-variants-empty.json");
|
|
await interceptRPC(page, "get-projects?team-id=*", "logged-in-user/get-projects-default.json");
|
|
await interceptRPC(page, "get-team-members?team-id=*", "logged-in-user/get-team-members-your-penpot.json");
|
|
await interceptRPC(page, "get-team-users?team-id=*", "logged-in-user/get-team-users-single-user.json");
|
|
await interceptRPC(
|
|
page,
|
|
"get-unread-comment-threads?team-id=*",
|
|
"logged-in-user/get-team-users-single-user.json",
|
|
);
|
|
await interceptRPC(
|
|
page,
|
|
"get-team-recent-files?team-id=*",
|
|
"logged-in-user/get-team-recent-files-empty.json",
|
|
);
|
|
await interceptRPC(
|
|
page,
|
|
"get-profiles-for-file-comments",
|
|
"logged-in-user/get-profiles-for-file-comments-empty.json",
|
|
);
|
|
await interceptRPC(page, "get-builtin-templates", "logged-in-user/get-builtin-templates-empty.json");
|
|
};
|
|
|
|
test("Shows login page when going to index and user is logged out", async ({ page }) => {
|
|
await setupLoggedOutUser(page);
|
|
|
|
await page.goto("/");
|
|
|
|
await expect(page).toHaveURL(/auth\/login$/);
|
|
await expect(page.getByText("Log into my account")).toBeVisible();
|
|
});
|
|
|
|
test("User logs in by filling the login form", async ({ page }) => {
|
|
await setupLoggedOutUser(page);
|
|
|
|
await page.goto("/#/auth/login");
|
|
|
|
await setupDashboardUser(page);
|
|
|
|
await page.getByLabel("Email").fill("foo@example.com");
|
|
await page.getByLabel("Password").fill("loremipsum");
|
|
|
|
await page.getByRole("button", { name: "Login" }).click();
|
|
|
|
await expect(page).toHaveURL(/dashboard/);
|
|
});
|