Remove global app references (#7433)
* remove global app references * test fix * fix api4 test compilation
Этот коммит содержится в:
15
api/api.go
15
api/api.go
@@ -59,15 +59,16 @@ type Routes struct {
|
||||
|
||||
var BaseRoutes *Routes
|
||||
|
||||
func InitRouter() {
|
||||
app.Global().Srv.Router = mux.NewRouter()
|
||||
app.Global().Srv.Router.NotFoundHandler = http.HandlerFunc(Handle404)
|
||||
func NewRouter() *mux.Router {
|
||||
ret := mux.NewRouter()
|
||||
ret.NotFoundHandler = http.HandlerFunc(Handle404)
|
||||
return ret
|
||||
}
|
||||
|
||||
func InitApi() {
|
||||
func InitApi(root *mux.Router) {
|
||||
BaseRoutes = &Routes{}
|
||||
BaseRoutes.Root = app.Global().Srv.Router
|
||||
BaseRoutes.ApiRoot = app.Global().Srv.Router.PathPrefix(model.API_URL_SUFFIX_V3).Subrouter()
|
||||
BaseRoutes.Root = root
|
||||
BaseRoutes.ApiRoot = root.PathPrefix(model.API_URL_SUFFIX_V3).Subrouter()
|
||||
BaseRoutes.Users = BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter()
|
||||
BaseRoutes.NeedUser = BaseRoutes.Users.PathPrefix("/{user_id:[A-Za-z0-9]+}").Subrouter()
|
||||
BaseRoutes.Teams = BaseRoutes.ApiRoot.PathPrefix("/teams").Subrouter()
|
||||
@@ -111,7 +112,7 @@ func InitApi() {
|
||||
InitDeprecated()
|
||||
|
||||
// 404 on any api route before web.go has a chance to serve it
|
||||
app.Global().Srv.Router.Handle("/api/{anything:.*}", http.HandlerFunc(Handle404))
|
||||
root.Handle("/api/{anything:.*}", http.HandlerFunc(Handle404))
|
||||
|
||||
utils.InitHTML()
|
||||
|
||||
|
||||
@@ -33,35 +33,12 @@ type TestHelper struct {
|
||||
SystemAdminChannel *model.Channel
|
||||
}
|
||||
|
||||
func SetupEnterprise() *TestHelper {
|
||||
if app.Global().Srv == nil {
|
||||
utils.TranslationsPreInit()
|
||||
utils.LoadConfig("config.json")
|
||||
utils.InitTranslations(utils.Cfg.LocalizationSettings)
|
||||
*utils.Cfg.TeamSettings.MaxUsersPerTeam = 50
|
||||
*utils.Cfg.RateLimitSettings.Enable = false
|
||||
utils.DisableDebugLogForTest()
|
||||
utils.License().Features.SetDefaults()
|
||||
app.Global().NewServer()
|
||||
app.Global().InitStores()
|
||||
InitRouter()
|
||||
wsapi.InitRouter()
|
||||
app.Global().StartServer()
|
||||
utils.InitHTML()
|
||||
api4.InitApi(false)
|
||||
InitApi()
|
||||
wsapi.InitApi()
|
||||
utils.EnableDebugLogForTest()
|
||||
app.Global().Srv.Store.MarkSystemRanUnitTests()
|
||||
|
||||
*utils.Cfg.TeamSettings.EnableOpenServer = true
|
||||
func setupTestHelper(enterprise bool) *TestHelper {
|
||||
th := &TestHelper{
|
||||
App: app.Global(),
|
||||
}
|
||||
|
||||
return &TestHelper{}
|
||||
}
|
||||
|
||||
func Setup() *TestHelper {
|
||||
if app.Global().Srv == nil {
|
||||
if th.App.Srv == nil {
|
||||
utils.TranslationsPreInit()
|
||||
utils.LoadConfig("config.json")
|
||||
utils.InitTranslations(utils.Cfg.LocalizationSettings)
|
||||
@@ -69,21 +46,32 @@ func Setup() *TestHelper {
|
||||
*utils.Cfg.RateLimitSettings.Enable = false
|
||||
utils.Cfg.EmailSettings.SendEmailNotifications = true
|
||||
utils.DisableDebugLogForTest()
|
||||
app.Global().NewServer()
|
||||
app.Global().InitStores()
|
||||
InitRouter()
|
||||
if enterprise {
|
||||
utils.License().Features.SetDefaults()
|
||||
}
|
||||
th.App.NewServer()
|
||||
th.App.InitStores()
|
||||
th.App.Srv.Router = NewRouter()
|
||||
wsapi.InitRouter()
|
||||
app.Global().StartServer()
|
||||
api4.InitApi(false)
|
||||
InitApi()
|
||||
th.App.StartServer()
|
||||
api4.InitApi(th.App.Srv.Router, false)
|
||||
InitApi(th.App.Srv.Router)
|
||||
wsapi.InitApi()
|
||||
utils.EnableDebugLogForTest()
|
||||
app.Global().Srv.Store.MarkSystemRanUnitTests()
|
||||
th.App.Srv.Store.MarkSystemRanUnitTests()
|
||||
|
||||
*utils.Cfg.TeamSettings.EnableOpenServer = true
|
||||
}
|
||||
|
||||
return &TestHelper{}
|
||||
return th
|
||||
}
|
||||
|
||||
func SetupEnterprise() *TestHelper {
|
||||
return setupTestHelper(true)
|
||||
}
|
||||
|
||||
func Setup() *TestHelper {
|
||||
return setupTestHelper(false)
|
||||
}
|
||||
|
||||
func ReloadConfigForSetup() {
|
||||
@@ -96,7 +84,6 @@ func ReloadConfigForSetup() {
|
||||
}
|
||||
|
||||
func (me *TestHelper) InitBasic() *TestHelper {
|
||||
me.App = app.Global()
|
||||
me.BasicClient = me.CreateClient()
|
||||
me.BasicUser = me.CreateUser(me.BasicClient)
|
||||
me.LoginBasic()
|
||||
@@ -116,7 +103,6 @@ func (me *TestHelper) InitBasic() *TestHelper {
|
||||
}
|
||||
|
||||
func (me *TestHelper) InitSystemAdmin() *TestHelper {
|
||||
me.App = app.Global()
|
||||
me.SystemAdminClient = me.CreateClient()
|
||||
me.SystemAdminUser = me.CreateUser(me.SystemAdminClient)
|
||||
me.SystemAdminUser.Password = "Password1"
|
||||
@@ -166,7 +152,7 @@ func (me *TestHelper) CreateUser(client *model.Client) *model.User {
|
||||
utils.DisableDebugLogForTest()
|
||||
ruser := client.Must(client.CreateUser(user, "")).Data.(*model.User)
|
||||
ruser.Password = "Password1"
|
||||
store.Must(app.Global().Srv.Store.User().VerifyEmail(ruser.Id))
|
||||
store.Must(me.App.Srv.Store.User().VerifyEmail(ruser.Id))
|
||||
utils.EnableDebugLogForTest()
|
||||
return ruser
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ func TestDeleteEmoji(t *testing.T) {
|
||||
}()
|
||||
*utils.Cfg.ServiceSettings.EnableCustomEmoji = false
|
||||
|
||||
emoji1 := createTestEmoji(t, &model.Emoji{
|
||||
emoji1 := createTestEmoji(t, th.App, &model.Emoji{
|
||||
CreatorId: th.BasicUser.Id,
|
||||
Name: model.NewId(),
|
||||
}, utils.CreateTestGif(t, 10, 10))
|
||||
@@ -247,7 +247,7 @@ func TestDeleteEmoji(t *testing.T) {
|
||||
t.Fatal("shouldn't be able to delete an already-deleted emoji")
|
||||
}
|
||||
|
||||
emoji2 := createTestEmoji(t, &model.Emoji{
|
||||
emoji2 := createTestEmoji(t, th.App, &model.Emoji{
|
||||
CreatorId: th.BasicUser2.Id,
|
||||
Name: model.NewId(),
|
||||
}, utils.CreateTestGif(t, 10, 10))
|
||||
@@ -263,11 +263,11 @@ func TestDeleteEmoji(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func createTestEmoji(t *testing.T, emoji *model.Emoji, imageData []byte) *model.Emoji {
|
||||
emoji = store.Must(app.Global().Srv.Store.Emoji().Save(emoji)).(*model.Emoji)
|
||||
func createTestEmoji(t *testing.T, a *app.App, emoji *model.Emoji, imageData []byte) *model.Emoji {
|
||||
emoji = store.Must(a.Srv.Store.Emoji().Save(emoji)).(*model.Emoji)
|
||||
|
||||
if err := utils.WriteFile(imageData, "emoji/"+emoji.Id+"/image"); err != nil {
|
||||
store.Must(app.Global().Srv.Store.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
||||
store.Must(a.Srv.Store.Emoji().Delete(emoji.Id, time.Now().Unix()))
|
||||
t.Fatalf("failed to write image: %v", err.Error())
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user