-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
30179: resetPassword mutation returns generic error #30230
30179: resetPassword mutation returns generic error #30230
Conversation
Hi @sudheers-kensium. Thank you for your contribution
❗ Automated tests can be triggered manually with an appropriate comment:
You can find more information about the builds here ℹ️ Please run only needed test builds instead of all when developing. Please run all test builds before sending your PR for review. For more details, please, review the Magento Contributor Guide documentation. 🕙 You can find the schedule on the Magento Community Calendar page. 📞 The triage of Pull Requests happens in the queue order. If you want to speed up the delivery of your contribution, please join the Community Contributions Triage session to discuss the appropriate ticket. 🎥 You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel ✏️ Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @sudheers-kensium thank you for providing the fix. Could you, please, cover the fix with an API-functional test (or modify an existing one). Basically, the test will check that for different errors, different messages will be returned.
Thank you!
@@ -118,7 +118,7 @@ public function resolve( | |||
$args['newPassword'] | |||
); | |||
} catch (LocalizedException $e) { | |||
throw new GraphQlInputException(__('Cannot set the customer\'s password'), $e); | |||
throw new GraphQlInputException(__('The password must be at least 8 characters long, minimum of 3 different classes of characters: Lower Case, Upper Case, Digits, Special Characters.'), $e); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sudheers-kensium we try not add new phrases. $e->getMessage() should bubble up the exceptions from the api, which will be more meaningful and is the scope of this bug. $this->customerAccountManagement->resetPassword throws Input Exceptions, you can catch them in the resolver to give meaningful error responses back. For example, I see a bunch of meaningful validations here \Magento\Customer\Model\AccountManagement::checkPasswordStrength
Once you're able to get those messages, you can cover a couple in api functional tests, just to make sure the validation errors are being thrown.
* @throws Exception | ||
* @throws LocalizedException | ||
*/ | ||
public function testNewPasswordCheckCharactersStrenth() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor fix, type here for Strength.
Hi @rogyar, thank you for the review. |
@magento run all tests |
Hi @sudheers-kensium, thank you for your contribution! |
[GraphQL] resetPassword mutation returns generic error
Description (*)
While implementing resetPassword functionality into PWA, an engineer ran into a problem that resulted in this generic error response: Cannot set the customer's password. It took digging through the exception log to discover the provided password didn't meet the minimum password requirements, which was not in the error message.
Related Pull Requests
Fixed Issues (if relevant)
Manual testing scenarios (*)
Questions or comments
Contribution checklist (*)