diff --git a/tests/integration/repo_webhook_test.go b/tests/integration/repo_webhook_test.go index 4b72962d4f5..12a11d45bd1 100644 --- a/tests/integration/repo_webhook_test.go +++ b/tests/integration/repo_webhook_test.go @@ -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)) }) } }