-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Remove external API calls in TestPassword
#30716
Conversation
TestPassword
TestPassword
Rather than introduce a new dep we could just pull out the parse logic and make unit tests for that instead? |
I use such http mocks all the time, I think they are great. They can be used everywhere we call external HTTP services in tests. It'll definitely not be the last time that we will use this dep. |
* origin/main: Replace deprecated `math/rand` functions (go-gitea#30733) Make Ctrl+Enter work for issue/comment edit (go-gitea#30720) Rename migration package name for 1.22-rc1 (go-gitea#30730) Issue card improvements (go-gitea#30687) Don't show loading indicators when refreshing the system status (go-gitea#30712) Add some tests to clarify the "must-change-password" behavior (go-gitea#30693) Prevent allow/reject reviews on merged/closed PRs (go-gitea#30686) Update JS dependencies (go-gitea#30713) Improve diff stats bar (go-gitea#30669) Remove unused parameter for some functions in `services/mirror` (go-gitea#30724) Update misspell to 0.5.1 and add `misspellings.csv` (go-gitea#30573) Suppress browserslist warning in webpack target (go-gitea#30571) [skip ci] Updated translations via Crowdin Diff color enhancements, add line number background (go-gitea#30670) feat(api): enhance Actions Secrets Management API for repository (go-gitea#30656) Fix code search input for different views (go-gitea#30678) Fix incorrect object id hash function (go-gitea#30708)
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.
I still don't think this test is as useful as a real integration test, but I'll concede that it's better than a flaky test.
If the mocking framework becomes a problem, it can be replaced with the more manual way of https://pkg.go.dev/net/http/httptest but I don't see that currently being necessary. |
* giteaofficial/main: (30 commits) Improve grep search (go-gitea#30843) Don't only list code-enabled repositories when using repository API (go-gitea#30817) Fix no edit history after editing issue's title and content (go-gitea#30814) Ignore useless error message "broken pipe" (go-gitea#30801) Fix JS error on pull request page (go-gitea#30838) Fix body margin shifting with modals, fix error on project column edit (go-gitea#30831) Improve repo button row layout (go-gitea#30668) refactor: merge ListActionTasks func to action.go file (go-gitea#30811) Prevent automatic OAuth grants for public clients (go-gitea#30790) Catch and handle unallowed file type errors in issue attachment API (go-gitea#30791) Fix incorrect message id for releaes email (go-gitea#30825) Add hover outline to heatmap squares (go-gitea#30828) Remove external API calls in `TestPassword` (go-gitea#30716) Upgrade chi-binding (go-gitea#30826) Improve context popup rendering (go-gitea#30824) Fix activity heat map padding & locale (go-gitea#30823) Fix issue card layout (go-gitea#30800) Fix branch selector UI (go-gitea#30803) Fix rounded border for segment followed by pagination (go-gitea#30809) Skip gzip for some well-known compressed file types (go-gitea#30796) ...
The test had a dependency on
https://api.pwnedpasswords.com
which caused many failures on CI recently:This mocks the service using gock and tests one positive and one negative case, removing this dependency and removing the need to have a password generator in the test because we control the responses.
Regarding concerns about compatibility, i think it's totally fine to mock this because if that service introduces a breaking change in their API, they better make a
/v2/
path or similar.