34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import { API_URL, fetchLatestToken, registerVerifyLogin, uniqueEmail } from "../helpers/api";
|
|
|
|
test.describe("§15.7 scenario 3: Password reset", () => {
|
|
test("forgot password → reset → login with new password", async ({ request }) => {
|
|
const email = uniqueEmail("e2e-reset");
|
|
const oldPassword = "Valid1234";
|
|
const newPassword = "ResetValid1";
|
|
|
|
await registerVerifyLogin(request, email, oldPassword);
|
|
|
|
const forgot = await request.post(`${API_URL}/api/v1/auth/forgot-password`, {
|
|
data: { email }
|
|
});
|
|
expect(forgot.ok()).toBeTruthy();
|
|
|
|
const token = await fetchLatestToken(request, email, "reset_password");
|
|
const reset = await request.post(`${API_URL}/api/v1/auth/reset-password`, {
|
|
data: { token, new_password: newPassword }
|
|
});
|
|
expect(reset.ok()).toBeTruthy();
|
|
|
|
const oldLogin = await request.post(`${API_URL}/api/v1/auth/login`, {
|
|
data: { email, password: oldPassword }
|
|
});
|
|
expect(oldLogin.status()).toBe(401);
|
|
|
|
const newLogin = await request.post(`${API_URL}/api/v1/auth/login`, {
|
|
data: { email, password: newPassword }
|
|
});
|
|
expect(newLogin.ok()).toBeTruthy();
|
|
});
|
|
});
|