(Breaking change) Switch between set password and change password on the settings page. (#15582)
Here is what the PR does: - Surface password state in validatePasswordResetToken, returning hasPassword so the client can tell whether a user is setting or changing their password. - Consume that flag throughout the front end (mock data, stories, GraphQL types) and update the Reset/Set Password modal to swap the heading/button label and success toast accordingly. - After a successful password set/reset, immediately update the logged-in user’s hasPassword flag so the Settings screen reflects the new state without a reload. Modal has two states now - reset password modal uses change password state since it made intuitive sense. <p align="center"> <img width="404" height="397" alt="image" src="https://github.com/user-attachments/assets/c54cc581-1248-4395-833d-0202758e1947" /> </p> <p align="center"> <img width="403" height="393" alt="image" src="https://github.com/user-attachments/assets/d8a39a95-27e6-4037-86f2-1f74176002ba" /> </p> --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
co-authored by
Félix Malfait
parent
cc7343a8f2
commit
0fcfcec426
@@ -4,7 +4,7 @@ export class ProfileSection {
|
||||
private readonly firstNameField: Locator;
|
||||
private readonly lastNameField: Locator;
|
||||
private readonly emailField: Locator;
|
||||
private readonly changePasswordButton: Locator;
|
||||
private readonly passwordLinkButton: Locator;
|
||||
private readonly deleteAccountButton: Locator;
|
||||
|
||||
constructor(public readonly page: Page) {
|
||||
@@ -12,8 +12,8 @@ export class ProfileSection {
|
||||
this.firstNameField = page.getByPlaceholder('Tim');
|
||||
this.lastNameField = page.getByPlaceholder('Cook');
|
||||
this.emailField = page.getByRole('textbox').nth(2);
|
||||
this.changePasswordButton = page.getByRole('button', {
|
||||
name: 'Change Password',
|
||||
this.passwordLinkButton = page.getByRole('button', {
|
||||
name: /Change Password|Set Password/,
|
||||
});
|
||||
this.deleteAccountButton = page.getByRole('button', {
|
||||
name: 'Delete account',
|
||||
@@ -34,8 +34,8 @@ export class ProfileSection {
|
||||
await this.emailField.textContent();
|
||||
}
|
||||
|
||||
async sendChangePasswordEmail() {
|
||||
await this.changePasswordButton.click();
|
||||
async sendPasswordSetOrChangeEmail() {
|
||||
await this.passwordLinkButton.click();
|
||||
}
|
||||
|
||||
async deleteAccount() {
|
||||
|
||||
Reference in New Issue
Block a user