47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
|
// 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,
|
||
|
|
);
|
||
|
|
}
|