Improve testing init, clean up webhook tests (#37412)

Avoid webhook test fixtures affect other tests (be triggered)

Also fixed more testing problems including path init, global config
pollution & conflict

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: wxiaoguang <2114189+wxiaoguang@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
Copilot
2026-04-25 18:55:18 +00:00
committed by GitHub
parent 24b60f8ff9
commit 9b9fb95559
25 changed files with 692 additions and 710 deletions
+19 -15
View File
@@ -10,12 +10,14 @@ import (
"net/http/httptest"
"net/url"
"path"
"strconv"
"strings"
"testing"
"time"
actions_model "code.gitea.io/gitea/models/actions"
auth_model "code.gitea.io/gitea/models/auth"
db_model "code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/perm"
"code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
@@ -40,26 +42,28 @@ import (
func TestNewWebHookLink(t *testing.T) {
defer tests.PrepareTestEnv(t)()
require.NoError(t, db_model.Insert(t.Context(), &webhook.Webhook{
RepoID: 1,
URL: "http://localhost/gitea-test-webhook-link",
ContentType: webhook.ContentTypeJSON,
Events: `{}`,
IsActive: true,
}))
hook := unittest.AssertExistsAndLoadBean(t, &webhook.Webhook{RepoID: 1})
session := loginUser(t, "user2")
baseurl := "/user2/repo1/settings/hooks"
tests := []string{
// webhook list page
baseurl,
// new webhook page
baseurl + "/gitea/new",
// edit webhook page
baseurl + "/1",
webhooksBaseHref := "/user2/repo1/settings/hooks"
cases := []string{
webhooksBaseHref,
webhooksBaseHref + "/gitea/new",
webhooksBaseHref + "/" + strconv.FormatInt(hook.ID, 10), // edit webhook
}
for _, url := range tests {
resp := session.MakeRequest(t, NewRequest(t, "GET", url), http.StatusOK)
for _, reqHref := range cases {
resp := session.MakeRequest(t, NewRequest(t, "GET", reqHref), http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
menus := htmlDoc.doc.Find(".ui.top.attached.header .ui.dropdown .menu a")
menus.Each(func(i int, menu *goquery.Selection) {
url, exist := menu.Attr("href")
assert.True(t, exist)
assert.True(t, strings.HasPrefix(url, baseurl))
foundHref := menu.AttrOr("href", "")
assert.True(t, strings.HasPrefix(foundHref, webhooksBaseHref))
})
}
}