template-monorepo/test/k6/journeys/change_password_full.js

47 lines
1.3 KiB
JavaScript
Raw Normal View History

2026-05-26 17:10:32 +00:00
// Journey: change password while logged in → login with new password
//
// Endpoints:
// POST /api/v1/auth/register/confirm path (via registerAndConfirm)
// POST /api/v1/members/me/password
// POST /api/v1/auth/login
import { post, checkError } from '../lib/http.js';
import { cfg } from '../lib/config.js';
import { registerAndConfirm, loginStep } from '../lib/auth.js';
import { changePassword } from '../lib/member.js';
export const options = {
vus: 1,
iterations: 1,
thresholds: { checks: ['rate==1.0'] },
};
export default function () {
const { identity, tokens } = registerAndConfirm();
const bearer = { Authorization: `Bearer ${tokens.access_token}` };
const newPassword = 'K6-ChangePass-8!';
const data = changePassword(identity.password, newPassword, bearer);
if (!data.ok) {
throw new Error('change password journey: expected ok=true');
}
const login = loginStep({
email: identity.email,
password: newPassword,
});
if (!login.access_token) {
throw new Error('change password journey: login with new password failed');
}
checkError(
post('/api/v1/auth/login', {
tenant_slug: cfg.tenantSlug,
email: identity.email,
password: identity.password,
}),
'POST /auth/login (old password after change)',
401,
28501000,
);
}