mirror of
https://github.com/penpot/penpot.git
synced 2025-01-24 15:39:50 -05:00
✨ Add more login integration tests
This commit is contained in:
parent
6fbdc4ff07
commit
106fe05657
4 changed files with 38 additions and 3 deletions
|
@ -28,6 +28,8 @@ export default defineConfig({
|
||||||
|
|
||||||
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
||||||
trace: "on-first-retry",
|
trace: "on-first-retry",
|
||||||
|
|
||||||
|
locale: "en-US"
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Configure projects for major browsers */
|
/* Configure projects for major browsers */
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"~:type": "~:validation",
|
||||||
|
"~:code": "~:wrong-credentials"
|
||||||
|
}
|
|
@ -1,7 +1,12 @@
|
||||||
export const interceptRPC = async (page, path, jsonFilename) => {
|
export const interceptRPC = async (page, path, jsonFilename, options = {}) => {
|
||||||
|
const interceptConfig = {
|
||||||
|
status: 200,
|
||||||
|
...options
|
||||||
|
};
|
||||||
|
|
||||||
await page.route(`**/api/rpc/command/${path}`, (route) => {
|
await page.route(`**/api/rpc/command/${path}`, (route) => {
|
||||||
route.fulfill({
|
route.fulfill({
|
||||||
status: 200,
|
...interceptConfig,
|
||||||
contentType: "application/transit+json",
|
contentType: "application/transit+json",
|
||||||
path: `playwright/fixtures/${jsonFilename}`,
|
path: `playwright/fixtures/${jsonFilename}`,
|
||||||
});
|
});
|
||||||
|
|
|
@ -37,7 +37,16 @@ test("Shows login page when going to index and user is logged out", async ({ pag
|
||||||
await page.goto("/");
|
await page.goto("/");
|
||||||
|
|
||||||
await expect(page).toHaveURL(/auth\/login$/);
|
await expect(page).toHaveURL(/auth\/login$/);
|
||||||
await expect(page.getByText("Log into my account")).toBeVisible();
|
await expect(page.getByRole("heading", { name: "Log into my account" } )).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("User submit a wrong formated email ", async ({ page }) => {
|
||||||
|
await interceptRPC(page, "get-profile", "get-profile-anonymous.json");
|
||||||
|
await page.goto("/");
|
||||||
|
await page.getByLabel("Email").fill("foo");
|
||||||
|
|
||||||
|
await expect(page).toHaveURL(/auth\/login$/);
|
||||||
|
await expect(page.getByText("Enter a valid email please")).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
||||||
test("User logs in by filling the login form", async ({ page }) => {
|
test("User logs in by filling the login form", async ({ page }) => {
|
||||||
|
@ -54,3 +63,18 @@ test("User logs in by filling the login form", async ({ page }) => {
|
||||||
|
|
||||||
await expect(page).toHaveURL(/dashboard/);
|
await expect(page).toHaveURL(/dashboard/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("User submits wrong credentials", async ({ page }) => {
|
||||||
|
await interceptRPC(page, "get-profile", "get-profile-anonymous.json");
|
||||||
|
await interceptRPC(page, "login-with-password", "login-with-password-error.json", { status: 400 });
|
||||||
|
|
||||||
|
await page.goto("/");
|
||||||
|
|
||||||
|
await page.getByLabel("Email").fill("foo123@example.com");
|
||||||
|
await page.getByLabel("Password").fill("aaaa");
|
||||||
|
|
||||||
|
await page.getByRole("button", { name: "Login" }).click();
|
||||||
|
|
||||||
|
await expect(page.getByText("Email or password is incorrect")).toBeVisible();
|
||||||
|
await expect(page).toHaveURL(/auth\/login$/);
|
||||||
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue