forgejo/tests/integration
Rowan Bohde 21fdd28f08
allow synchronizing user status from OAuth2 login providers (#31572)
This leverages the existing `sync_external_users` cron job to
synchronize the `IsActive` flag on users who use an OAuth2 provider set
to synchronize. This synchronization is done by checking for expired
access tokens, and using the stored refresh token to request a new
access token. If the response back from the OAuth2 provider is the
`invalid_grant` error code, the user is marked as inactive. However, the
user is able to reactivate their account by logging in the web browser
through their OAuth2 flow.

Also changed to support this is that a linked `ExternalLoginUser` is
always created upon a login or signup via OAuth2.

Ideally, we would also refresh permissions from the configured OAuth
provider (e.g., admin, restricted and group mappings) to match the
implementation of LDAP. However, the OAuth library used for this `goth`,
doesn't seem to support issuing a session via refresh tokens. The
interface provides a [`RefreshToken`
method](https://github.com/markbates/goth/blob/master/provider.go#L20),
but the returned `oauth.Token` doesn't implement the `goth.Session` we
would need to call `FetchUser`. Due to specific implementations, we
would need to build a compatibility function for every provider, since
they cast to concrete types (e.g.
[Azure](https://github.com/markbates/goth/blob/master/providers/azureadv2/azureadv2.go#L132))

---------

Co-authored-by: Kyle D <kdumontnu@gmail.com>
(cherry picked from commit 416c36f3034e228a27258b5a8a15eec4e5e426ba)

Conflicts:
	- tests/integration/auth_ldap_test.go
	  Trivial conflict resolved by manually applying the change.
	- routers/web/auth/oauth.go
	  Technically not a conflict, but the original PR removed the
	  modules/util import, which in our version, is still in use. Added it
	  back.
2024-07-22 15:44:13 +02:00
..
fixtures [SECURITY] Test XSS in dismissed review 2024-02-22 15:33:20 +01:00
migration-test Enable multiStatements for MySQL 2024-07-16 23:16:03 +02:00
schemas
actions_commit_status_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
actions_route_test.go Merge pull request '[UI] Actions: Link to Workflow in View' (#1866) from n0toose/forgejo:forgejo-add-workflow-link into forgejo 2024-02-28 17:28:16 +00:00
actions_trigger_test.go Fixes git references wrongly transmitted to the action run 2024-06-30 06:17:40 +02:00
admin_config_test.go
admin_user_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
api_actions_artifact_test.go Fix uploaded artifacts should be overwritten (#28726) 2024-01-17 11:21:16 +08:00
api_actions_artifact_v4_test.go fix artifact range requests (#4218) 2024-07-10 05:28:01 +00:00
api_activitypub_person_test.go activitypub: warn instead of error 2024-03-24 07:12:31 +01:00
api_activitypub_repository_test.go federated-star: finalize receive activity (#3871) 2024-05-24 00:25:57 +00:00
api_admin_org_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_admin_test.go Add result check in TestAPIEditUser (#29674) 2024-05-09 19:26:21 +02:00
api_block_test.go [MODERATION] User blocking (squash) do not use token= query param 2024-02-05 15:56:58 +01:00
api_branch_test.go test-sha256: APICreateBranch 2024-05-16 10:54:40 +02:00
api_comment_attachment_test.go Load attachments for /issues/comments/{id} 2024-07-16 11:09:54 +02:00
api_comment_test.go [FEAT] Adds x-mode-only anchor styles to display images based if the theme is light or dark mode. (#3985) 2024-06-09 10:50:53 +00:00
api_feed_plain_text_titles_test.go [GITEA] convert feed items' titles to plain text 2024-02-05 16:09:40 +01:00
api_feed_user_test.go [GITEA] Add repo empty check for branch feed 2024-02-05 16:09:40 +01:00
api_forgejo_root_test.go [API] Forgejo API /api/forgejo/v1 2024-02-05 14:44:32 +01:00
api_forgejo_version_test.go Fix #2512 /api/forgejo/v1/version auth check (#2582) 2024-03-19 07:16:19 +00:00
api_fork_test.go Allow admins to fork repos even when creation limits are exhausted (#3277) 2024-04-17 05:52:02 +00:00
api_gitignore_templates_test.go
api_gpg_keys_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_health_test.go Remove useless t.run 2024-04-06 00:43:22 +02:00
api_helper_for_declarative_test.go test(integration): refactor doAPIMergePullRequest 2024-06-01 23:50:57 +02:00
api_httpsig_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_attachment_test.go Catch and handle unallowed file type errors in issue attachment API (#30791) 2024-05-05 12:15:40 +01:00
api_issue_config_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
api_issue_label_test.go Support using label names when changing issue labels (#30943) 2024-05-19 13:12:35 +02:00
api_issue_milestone_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_pin_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_reaction_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_stopwatch_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_subscription_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_templates_test.go [TESTS] issue & PR templates in .forgejo are recognized 2024-02-06 10:22:32 +01:00
api_issue_test.go Fix no edit history after editing issue's title and content (#30814) 2024-05-05 12:15:40 +01:00
api_issue_tracked_time_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_keys_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_label_templates_test.go
api_license_templates_test.go
api_nodeinfo_test.go [FEAT] Adds x-mode-only anchor styles to display images based if the theme is light or dark mode. (#3985) 2024-06-09 10:50:53 +00:00
api_notification_test.go Enable more revive linter rules (#30608) 2024-04-28 15:39:00 +02:00
api_oauth2_apps_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_org_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_org_test.go Allow non-admin users to delete review requests (#29057) 2024-02-26 22:30:27 +01:00
api_packages_alpine_test.go Remove hardcoded filenames for better readability 2024-07-17 23:20:48 +02:00
api_packages_cargo_test.go Run go generate and go vet on all packages (#30529) 2024-04-21 16:28:16 +02:00
api_packages_chef_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-05-05 08:38:16 +01:00
api_packages_composer_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_conan_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_conda_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_container_test.go [GITEA] Drop sha256-simd in favor of stdlib 2024-02-05 16:09:40 +01:00
api_packages_cran_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_debian_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_generic_test.go Relax generic package filename restrictions (#30135) 2024-03-30 07:17:31 +01:00
api_packages_goproxy_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_helm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_maven_test.go templates: Be more forgiving about missing package metadata 2024-05-10 12:07:24 +02:00
api_packages_npm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_nuget_test.go Fix NuGet Package API for $filter with Id equality (#31188) 2024-06-09 11:13:39 +02:00
api_packages_pub_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_pypi_test.go Update tests/integration/api_packages_pypi_test.go 2024-04-12 21:02:42 +00:00
api_packages_rpm_test.go Fix some RPM registry flaws (#28782) 2024-01-19 11:37:10 +00:00
api_packages_rubygems_test.go Add minimal implementation for RubyGems compact index API. (#3811) 2024-05-19 23:30:41 +00:00
api_packages_swift_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_test.go [GITEA] Drop sha256-simd in favor of stdlib 2024-02-05 16:09:40 +01:00
api_packages_vagrant_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_private_serv_test.go Final round of db.DefaultContext refactor (#27587) 2023-10-14 08:37:24 +00:00
api_pull_commits_test.go api: GetPullRequestCommits: return file list (#27483) 2023-10-09 11:22:12 +00:00
api_pull_review_test.go Allow non-admin users to delete review requests (#29057) 2024-02-26 22:30:27 +01:00
api_pull_test.go Fix no edit history after editing issue's title and content (#30814) 2024-05-05 12:15:40 +01:00
api_push_mirror_test.go tests(api): POST /repos/{owner}/{repo}/push_mirrors coverage 2024-06-02 16:31:41 +02:00
api_releases_test.go Protected tag is no internal server error (#30962) 2024-05-19 13:12:35 +02:00
api_repo_activities_test.go Teach activities.GetFeeds() how to avoid returning duplicates 2024-05-09 18:33:33 +02:00
api_repo_archive_test.go Add an immutable tarball link to archive download headers for Nix 2024-05-03 15:21:45 -07:00
api_repo_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_branch_test.go Disable query token param in integration tests (#28592) 2023-12-23 11:29:51 +08:00
api_repo_collaborator_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_compare_test.go feat(api): implement branch/commit comparison API (#30349) 2024-04-21 11:58:18 +02:00
api_repo_edit_test.go Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
api_repo_file_create_test.go test-sha256: APICreateFile 2024-05-16 11:01:47 +02:00
api_repo_file_delete_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_file_get_test.go test-sha256: PushDeployKeyOnEmptyRepo 2024-05-16 10:54:40 +02:00
api_repo_file_helpers.go Fix Bug in Issue Config when only contact links are set (#26521) 2023-09-28 20:16:40 +08:00
api_repo_file_update_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
api_repo_files_change_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
api_repo_get_contents_list_test.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
api_repo_get_contents_test.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
api_repo_git_blobs_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_commits_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_hook_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_notes_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_ref_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_tags_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-05-05 08:38:16 +01:00
api_repo_git_trees_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_hook_test.go [REFACTOR] webhook.Handler interface 2024-03-24 10:35:06 +01:00
api_repo_languages_test.go [GITEA] Allow user to select email for file operations in Web UI 2024-02-05 16:09:41 +01:00
api_repo_lfs_locks_test.go Fix #31185 try fix lfs download from bitbucket failed (#31201) 2024-06-16 13:42:59 +02:00
api_repo_lfs_migrate_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_lfs_test.go Fix #31185 try fix lfs download from bitbucket failed (#31201) 2024-06-16 13:42:59 +02:00
api_repo_raw_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_secrets_test.go feat(api): enhance Actions Secrets Management API for repository (#30656) 2024-04-28 15:39:01 +02:00
api_repo_tags_test.go Add lint-go-gopls (#30729) 2024-06-09 11:13:39 +02:00
api_repo_teams_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_test.go [BUG] Use correct SHA in GetCommitPullRequest 2024-07-06 22:04:31 +02:00
api_repo_topic_test.go [GITEA] Fix the topic search paging 2024-02-05 16:09:43 +01:00
api_repo_variables_test.go Add API for Variables (#29520) 2024-04-07 10:57:53 +02:00
api_settings_test.go
api_team_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_team_user_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_token_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_twofa_test.go [BRANDING] X-Forgejo-OTP can be used instead of X-Gitea-OTP 2024-02-05 16:05:01 +01:00
api_user_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_email_test.go Unify user update methods (#28733) 2024-02-04 13:29:09 +00:00
api_user_follow_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
api_user_heatmap_test.go Refactor timeutil package (#28623) 2023-12-28 10:09:57 +00:00
api_user_info_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_org_perm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_orgs_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_search_test.go Fix user search paging 2024-04-23 00:06:05 +02:00
api_user_secrets_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_star_test.go Disabling Stars should disable the routes too 2024-02-26 20:50:32 +01:00
api_user_variables_test.go Add API for Variables (#29520) 2024-04-07 10:57:53 +02:00
api_user_watch_test.go Add tests for #28765 (#28773) 2024-01-12 17:15:42 +00:00
api_wiki_test.go tests: Test the Wiki APIs with a non-master branch 2024-04-25 00:36:58 +02:00
archived_labels_display_test.go Add integration test for (non-)archived label properties 2024-04-01 21:38:34 +05:00
attachment_test.go
auth_ldap_test.go allow synchronizing user status from OAuth2 login providers (#31572) 2024-07-22 15:44:13 +02:00
auth_token_test.go [SECURITY] Rework long-term authentication 2024-02-05 15:06:15 +01:00
avatar.png
benchmarks_test.go Replace deprecated math/rand functions (#30733) 2024-04-28 15:39:02 +02:00
block_test.go [UI] Fix HTMX support for profile card 2024-07-17 01:41:32 +02:00
branches_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
change_default_branch_test.go
cmd_admin_test.go test(cli): admin user change-password --must-change-password 2024-04-24 15:43:27 +02:00
cmd_forgejo_actions_test.go [TESTS] prevent overriding testlogger when calling mainApp 2024-03-27 22:54:13 +01:00
cmd_forgejo_f3_test.go Update module code.forgejo.org/f3/gof3/v3 to v3.4.0 (#4196) 2024-06-21 13:51:59 +00:00
cmd_keys_test.go [TESTS] prevent overriding testlogger when calling mainApp 2024-03-27 22:54:13 +01:00
codeowner_test.go Makefile: check git diff exit-code (#2651) 2024-03-14 10:38:58 +00:00
compare_test.go tests: Add a test for code expansion on PRs 2024-05-24 10:30:38 +02:00
cors_test.go Refactor CORS handler (#28587) 2023-12-25 20:13:18 +08:00
create_no_session_test.go Refactor tests (#26464) 2023-08-12 16:30:16 +00:00
csrf_test.go
db_collation_test.go [CHORE] Remove Microsoft SQL Server Support 2024-04-05 23:37:36 +02:00
delete_user_test.go [MODERATION] Purge issues on user deletion 2024-02-05 15:39:02 +01:00
doctor_packages_nuget_test.go feat: improve nuget nuspec api 2024-04-05 23:39:45 +02:00
download_test.go
dump_restore_test.go Add lint-go-gopls (#30729) 2024-06-09 11:13:39 +02:00
easymde_test.go Add integration test for EasyMDE button 2024-04-15 22:59:26 +05:00
editor_test.go Fix automerge will not work because of some events haven't been triggered (#30780) 2024-05-26 19:01:36 +02:00
empty_repo_test.go [BUG] Implement commit mail selection for other Git operations 2024-02-27 22:41:58 +00:00
eventsource_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
explore_code_test.go add test 2024-04-13 06:04:00 +00:00
explore_repos_test.go [BUG] Remember topic only in repo search 2024-03-06 13:22:39 +01:00
explore_user_test.go Remove unnecessary ".Link" usages (#29909) 2024-03-26 19:04:26 +01:00
forgejo_confirmation_repo_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
forgejo_git_test.go [GITEA] pulls: "Edit File" button in "Files Changed" tab 2024-02-05 16:09:42 +01:00
git_clone_wiki_test.go
git_helper_for_declarative_test.go test: enforce tenv usage in tests 2024-07-17 23:07:41 +02:00
git_push_test.go fix(hook): ignore unknown push options instead of failing 2024-07-02 21:39:01 +02:00
git_smart_http_test.go
git_test.go test(integration): add protected file to doBranchProtect 2024-06-01 23:50:57 +02:00
goget_test.go
gpg_git_test.go test: enforce tenv usage in tests 2024-07-17 23:07:41 +02:00
html_helper.go fix: preserve object format dropdown options on /repo/create error (#4360) 2024-07-16 14:42:35 +00:00
incoming_email_test.go fix(incoming): allow replies to comments 2024-04-23 00:05:12 +02:00
integration_test.go [CHORE] Update jsonschema library to v6 2024-07-15 17:20:50 +02:00
issue_subscribe_test.go Disable issue subscribe button for guest users (#4095) 2024-06-11 05:54:35 +00:00
issue_test.go ui: fix issue labels 2024-07-17 16:19:44 +05:00
issues_comment_labels_test.go Clarify author label in tooltip 2024-06-25 18:30:06 +05:00
last_updated_time_test.go [I18N] Injected updated time in translation string (#3837) 2024-05-20 18:47:35 +00:00
lfs_getobject_test.go [GITEA] Use maintained gziphandler 2024-02-05 16:09:40 +01:00
lfs_local_endpoint_test.go
lfs_view_test.go fix(ui): /settings/lfs/find 500 error (take 2) 2024-04-25 23:00:11 +02:00
linguist_test.go Correctly support linguist-documentation=false 2024-02-26 14:18:33 +01:00
links_test.go [REFACTOR] webhook move edit endpoints 2024-03-27 22:26:55 +01:00
markup_external_test.go Run go generate and go vet on all packages (#30529) 2024-04-21 16:28:16 +02:00
markup_test.go Update the TestRenderAlertBlocks integration test 2024-03-23 15:38:43 +01:00
migrate_test.go [BRANDING] add Forgejo Git Service and migration UI 2024-02-05 16:05:02 +01:00
mirror_pull_test.go Move migration functions to services layer (#29497) 2024-03-04 07:10:53 +01:00
mirror_push_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
nonascii_branches_test.go
oauth_test.go test: pkce only for OpenID Connect 2024-06-10 11:24:32 +02:00
opengraph_test.go Fix opengraph meta for wiki pages (#4427) 2024-07-10 18:29:35 +00:00
org_count_test.go Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
org_nav_test.go [UI] Allow org members to navigate between the org and the dashboard 2024-05-05 23:14:57 +05:00
org_project_test.go Fix data-race during testing (#30999) 2024-05-26 18:28:26 +02:00
org_team_invite_test.go Update team invitation email link (#26550) 2023-08-31 16:26:13 +00:00
org_test.go add label filters in org/{org_name}/issues 2024-04-04 17:57:11 +05:30
private-testing.key
privateactivity_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
proctected_branch_test.go [FEAT] Configure if protected branch rule should apply to admins 2024-03-29 00:21:49 +01:00
project_test.go Rename project board -> column to make the UI less confusing (#30170) 2024-06-02 09:42:39 +02:00
pull_compare_test.go
pull_create_test.go chore: rename class issue-title-buttons to button-row 2024-06-28 13:11:16 +05:00
pull_diff_test.go Add commits dropdown in PR files view and allow commit by commit review (#25528) 2023-07-28 21:18:12 +02:00
pull_merge_test.go tests(integration): add TestPullMergeBranchProtect 2024-06-01 23:50:57 +02:00
pull_reopen_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
pull_request_task_test.go Do not update PRs based on events that happened before they existed 2024-04-11 11:16:23 +02:00
pull_review_test.go Fix automerge will not work because of some events haven't been triggered (#30780) 2024-05-26 19:01:36 +02:00
pull_status_test.go Enable more revive linter rules (#30608) 2024-04-28 15:39:00 +02:00
pull_summary_test.go Add test for pull summary 2024-03-22 07:11:52 +01:00
pull_update_test.go Performance improvements for pull request list page (#29900) 2024-03-26 19:04:26 +01:00
pull_wip_convert_test.go Add test for add/remove WIP link display 2024-03-21 19:33:02 +05:00
README.md Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
README_ZH.md [CHORE] Remove Microsoft SQL Server Support 2024-04-05 23:37:36 +02:00
release_test.go Fix localization of release/tag counters on releases page 2024-05-29 22:46:36 +05:00
remote_test.go Implement remote user login source and promotion to regular user 2024-04-25 13:03:49 +02:00
rename_branch_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
repo_activity_test.go Show repo activities even if only code unit active or git repo is empty but issue is active (#3455) 2024-04-28 13:47:52 +00:00
repo_archive_test.go tests(web): verify compressed files are not re-compressed 2024-05-25 23:54:28 +02:00
repo_archive_text_test.go Makefile: check git diff exit-code (#2651) 2024-03-14 10:38:58 +00:00
repo_badges_test.go badges: Relax the default workflow badge conditions 2024-05-20 11:20:11 +02:00
repo_branch_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-05-05 08:38:16 +01:00
repo_collaborator_test.go ui: fix wrong string used in a search box (#4258) 2024-06-28 16:28:03 +00:00
repo_commits_search_test.go Integration Test for Commit Search containing Square Brackets (#28751) 2024-01-11 11:04:45 +08:00
repo_commits_test.go Restore warning commit status (#27504) 2023-10-08 22:16:06 +00:00
repo_delete_test.go test: check hook_task deletion 2024-05-24 10:31:41 +02:00
repo_flags_test.go [FEAT] API support for repository flags 2024-02-05 16:09:42 +01:00
repo_fork_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
repo_generate_test.go fix: preserve object format dropdown options on /repo/create error (#4360) 2024-07-16 14:42:35 +00:00
repo_mergecommit_revert_test.go Run go generate and go vet on all packages (#30529) 2024-04-21 16:28:16 +02:00
repo_migrate_test.go [GITEA] add GitHub repo migration test 2024-02-05 16:05:50 +01:00
repo_pagination_test.go Makefile: check git diff exit-code (#2651) 2024-03-14 10:38:58 +00:00
repo_search_test.go fix(code search): various ui/ux improvements raised by user research (#4332) 2024-07-10 05:25:32 +00:00
repo_settings_hook_test.go add repo_settings_hook_test 2024-03-11 23:37:00 +07:00
repo_settings_test.go feat(federated-star) star repositories via ActivityPub (#1680) 2024-06-06 08:58:11 +02:00
repo_signed_tag_test.go An integration test for SSH signed tags 2024-03-30 20:14:42 +01:00
repo_starwatch_test.go Disabling Stars should disable the routes too 2024-02-26 20:50:32 +01:00
repo_tag_test.go Fix localization of release/tag counters on releases page 2024-05-29 22:46:36 +05:00
repo_test.go [BUG] Fix panic on too high page number 2024-07-21 02:01:54 +02:00
repo_topic_test.go [GITEA] Fix the topic search paging 2024-02-05 16:09:43 +01:00
repo_view_test.go add org readme to search with priority 2024-06-16 15:27:28 +02:00
repo_watch_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
repo_webhook_test.go webhook: matrix access_token helper text 2024-04-16 08:59:56 +02:00
repo_wiki_test.go feat: wiki search using git-grep 2024-05-20 13:48:50 +00:00
repofiles_change_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-05-05 08:38:16 +01:00
session_test.go Fix session key conflict with database keyword (#28613) 2023-12-27 15:24:23 +08:00
setting_test.go UI: Hide hidden email from own profile, again 2024-05-05 13:08:31 +02:00
signin_test.go Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
signout_test.go
signup_test.go Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
size_translations_test.go Fix spelling mistakes caught by golangci-lint 2024-04-11 17:16:26 +02:00
ssh_key_test.go test-sha256: PushDeployKeyOnEmptyRepo 2024-05-16 10:54:40 +02:00
timetracking_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
user_avatar_test.go
user_count_test.go Show repo count in blocked users tab (#3601) 2024-05-02 15:51:27 +00:00
user_profile_activity_test.go ui(settings): make user privacy settings more clear 2024-07-10 10:07:23 +05:00
user_profile_follows_test.go Add headers to follower lists 2024-06-19 11:53:59 +05:00
user_profile_test.go [TESTS] Lift out CreateDeclarativeRepo() 2024-02-05 16:54:44 +01:00
user_test.go ui: encourage participation in the localization of Forgejo in language settings (#4596) 2024-07-20 16:38:59 +00:00
version_test.go Fix #2512 /api/forgejo/v1/version auth check (#2582) 2024-03-19 07:16:19 +00:00
view_test.go Update instance title in tests 2024-06-08 23:33:55 +05:00
webfinger_test.go fix: respond with 404 when webfingered with non-actor URIs 2024-04-04 16:52:25 +00:00
webhook_test.go Add tests for webhook release events 2024-04-16 19:25:26 +02:00
xss_test.go [I18N] Improve English strings & consistency 2024-02-27 17:42:59 +00:00

Integration tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-sqlite
make test-pgsql
make test-mysql

Make sure to perform a clean build before running tests:

make clean build

Run tests via local act_runner

Run all jobs

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest

Warning: This file defines many jobs, so it will be resource-intensive and therefore not recommended.

Run single job

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -j <job_name>

You can list all job names via:

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -l

Run sqlite integration tests

Start tests

make test-sqlite

Run MySQL integration tests

Setup a MySQL database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" -p 3306:3306 --rm --name mysql mysql:latest #(just ctrl-c to stop db and clean the container)
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --rm --name elasticsearch elasticsearch:7.6.0 #(in a second terminal, just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MYSQL_HOST=localhost:3306 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integration tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" -p 5432:5432 --rm --name pgsql postgres:latest #(just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_PGSQL_HOST=localhost:5432 TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Running individual tests

Example command to run GPG test:

For SQLite:

make test-sqlite#GPG

For other databases (replace mysql to pgsql):

TEST_MYSQL_HOST=localhost:1433 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=sa TEST_MYSQL_PASSWORD=MwantsaSecurePassword1 make test-mysql#GPG

Setting timeouts for declaring long-tests and long-flushes

We appreciate that some testing machines may not be very powerful and the default timeouts for declaring a slow test or a slow clean-up flush may not be appropriate.

You can either:

  • Within the test ini file set the following section:
[integration-tests]
SLOW_TEST = 10s ; 10s is the default value
SLOW_FLUSH = 5S ; 5s is the default value
  • Set the following environment variables:
GITEA_SLOW_TEST_TIME="10s" GITEA_SLOW_FLUSH_TIME="5s" make test-sqlite