Align the project baseline with the latest admin interface styling and layout structure while documenting setup and usage updates in README.
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();
|
|
});
|
|
});
|