mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-29 21:41:02 +00:00
[TESTS] testMiddlewareHook, dependency injection in integration tests
(cherry picked from commit6623630d10) (cherry picked from commitd30b9dc5b4) (cherry picked from commit8e790a65ba) (cherry picked from commit9d98ba7e5c) (cherry picked from commit07fc55a3a7) (cherry picked from commitf9d054d17f) (cherry picked from commitc7dc1e1c7f) (cherry picked from commitbe69999d30)
This commit is contained in:
parent
5194829d6b
commit
9e281d6675
6 changed files with 28 additions and 19 deletions
|
|
@ -169,12 +169,12 @@ func InitWebInstalled(ctx context.Context) {
|
|||
}
|
||||
|
||||
// NormalRoutes represents non install routes
|
||||
func NormalRoutes() *web.Route {
|
||||
func NormalRoutes(middlewares ...any) *web.Route {
|
||||
_ = templates.HTMLRenderer()
|
||||
r := web.NewRoute()
|
||||
r.Use(common.ProtocolMiddlewares()...)
|
||||
|
||||
r.Mount("/", web_routers.Routes())
|
||||
r.Mount("/", web_routers.Routes(middlewares...))
|
||||
r.Mount("/api/v1", apiv1.Routes())
|
||||
r.Mount("/api/forgejo/v1", forgejo.Routes())
|
||||
r.Mount("/api/internal", private.Routes())
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ func ctxDataSet(args ...any) func(ctx *context.Context) {
|
|||
}
|
||||
|
||||
// Routes returns all web routes
|
||||
func Routes() *web.Route {
|
||||
func Routes(middlewares ...any) *web.Route {
|
||||
routes := web.NewRoute()
|
||||
|
||||
routes.Head("/", misc.DummyOK) // for health check - doesn't need to be passed through gzip handler
|
||||
|
|
@ -159,6 +159,7 @@ func Routes() *web.Route {
|
|||
mid = append(mid, user.GetNotificationCount)
|
||||
mid = append(mid, repo.GetActiveStopwatch)
|
||||
mid = append(mid, goGet)
|
||||
mid = append(mid, middlewares...)
|
||||
|
||||
others := web.NewRoute()
|
||||
others.Use(mid...)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import (
|
|||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/activitypub"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/routers"
|
||||
|
||||
ap "github.com/go-ap/activitypub"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
|
@ -22,10 +21,10 @@ import (
|
|||
|
||||
func TestActivityPubPerson(t *testing.T) {
|
||||
setting.Federation.Enabled = true
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
defer func() {
|
||||
setting.Federation.Enabled = false
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
}()
|
||||
|
||||
onGiteaRun(t, func(*testing.T, *url.URL) {
|
||||
|
|
@ -60,10 +59,10 @@ func TestActivityPubPerson(t *testing.T) {
|
|||
|
||||
func TestActivityPubMissingPerson(t *testing.T) {
|
||||
setting.Federation.Enabled = true
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
defer func() {
|
||||
setting.Federation.Enabled = false
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
}()
|
||||
|
||||
onGiteaRun(t, func(*testing.T, *url.URL) {
|
||||
|
|
@ -75,10 +74,10 @@ func TestActivityPubMissingPerson(t *testing.T) {
|
|||
|
||||
func TestActivityPubPersonInbox(t *testing.T) {
|
||||
setting.Federation.Enabled = true
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
defer func() {
|
||||
setting.Federation.Enabled = false
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
}()
|
||||
|
||||
srv := httptest.NewServer(c)
|
||||
|
|
|
|||
|
|
@ -10,17 +10,16 @@ import (
|
|||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
api "code.gitea.io/gitea/modules/structs"
|
||||
"code.gitea.io/gitea/routers"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNodeinfo(t *testing.T) {
|
||||
setting.Federation.Enabled = true
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
defer func() {
|
||||
setting.Federation.Enabled = false
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
}()
|
||||
|
||||
onGiteaRun(t, func(*testing.T, *url.URL) {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import (
|
|||
|
||||
"code.gitea.io/gitea/modules/json"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/routers"
|
||||
"code.gitea.io/gitea/tests"
|
||||
|
||||
"gitea.com/go-chi/session"
|
||||
|
|
@ -56,7 +55,7 @@ func TestSessionFileCreation(t *testing.T) {
|
|||
oldSessionConfig := setting.SessionConfig.ProviderConfig
|
||||
defer func() {
|
||||
setting.SessionConfig.ProviderConfig = oldSessionConfig
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
}()
|
||||
|
||||
var config session.Options
|
||||
|
|
@ -75,7 +74,7 @@ func TestSessionFileCreation(t *testing.T) {
|
|||
|
||||
setting.SessionConfig.ProviderConfig = string(newConfigBytes)
|
||||
|
||||
c = routers.NormalRoutes()
|
||||
setNormalRoutes()
|
||||
|
||||
t.Run("NoSessionOnViewIssue", func(t *testing.T) {
|
||||
defer tests.PrintCurrentTest(t)()
|
||||
|
|
|
|||
|
|
@ -40,7 +40,19 @@ import (
|
|||
"github.com/xeipuuv/gojsonschema"
|
||||
)
|
||||
|
||||
var c *web.Route
|
||||
var (
|
||||
c *web.Route
|
||||
testMiddlewareHook func(*gitea_context.Context)
|
||||
)
|
||||
|
||||
func setNormalRoutes() {
|
||||
middlewareHook := func(ctx *gitea_context.Context) {
|
||||
if testMiddlewareHook != nil {
|
||||
testMiddlewareHook(ctx)
|
||||
}
|
||||
}
|
||||
c = routers.NormalRoutes(middlewareHook)
|
||||
}
|
||||
|
||||
type NilResponseRecorder struct {
|
||||
httptest.ResponseRecorder
|
||||
|
|
@ -87,8 +99,7 @@ func TestMain(m *testing.M) {
|
|||
defer cancel()
|
||||
|
||||
tests.InitTest(true)
|
||||
c = routers.NormalRoutes()
|
||||
|
||||
setNormalRoutes()
|
||||
// integration test settings...
|
||||
if setting.CfgProvider != nil {
|
||||
testingCfg := setting.CfgProvider.Section("integration-tests")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue