[MM-56904] Reduce the number of api requests made to fetch user information for GMs on page load (#27149)
* use new endpoint to fetch group members
Этот коммит содержится в:
@@ -96,6 +96,34 @@ func (_m *PreferenceStore) DeleteCategoryAndName(category string, name string) e
|
||||
return r0
|
||||
}
|
||||
|
||||
// DeleteInvalidVisibleDmsGms provides a mock function with given fields:
|
||||
func (_m *PreferenceStore) DeleteInvalidVisibleDmsGms() (int64, error) {
|
||||
ret := _m.Called()
|
||||
|
||||
if len(ret) == 0 {
|
||||
panic("no return value specified for DeleteInvalidVisibleDmsGms")
|
||||
}
|
||||
|
||||
var r0 int64
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func() (int64, error)); ok {
|
||||
return rf()
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func() int64); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(int64)
|
||||
}
|
||||
|
||||
if rf, ok := ret.Get(1).(func() error); ok {
|
||||
r1 = rf()
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// DeleteOrphanedRows provides a mock function with given fields: limit
|
||||
func (_m *PreferenceStore) DeleteOrphanedRows(limit int) (int64, error) {
|
||||
ret := _m.Called(limit)
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestPreferenceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
func TestPreferenceStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("PreferenceSave", func(t *testing.T) { testPreferenceSave(t, rctx, ss) })
|
||||
t.Run("PreferenceGet", func(t *testing.T) { testPreferenceGet(t, rctx, ss) })
|
||||
t.Run("PreferenceGetCategory", func(t *testing.T) { testPreferenceGetCategory(t, rctx, ss) })
|
||||
@@ -24,6 +24,7 @@ func TestPreferenceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("PreferenceDeleteCategory", func(t *testing.T) { testPreferenceDeleteCategory(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteCategoryAndName", func(t *testing.T) { testPreferenceDeleteCategoryAndName(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteOrphanedRows", func(t *testing.T) { testPreferenceDeleteOrphanedRows(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteInvalidVisibleDmsGms", func(t *testing.T) { testDeleteInvalidVisibleDmsGms(t, rctx, ss, s) })
|
||||
}
|
||||
|
||||
func testPreferenceSave(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
@@ -401,3 +402,78 @@ func testPreferenceDeleteOrphanedRows(t *testing.T, rctx request.CTX, ss store.S
|
||||
_, nErr = ss.Preference().Get(userId, category, preference2.Name)
|
||||
assert.NoError(t, nErr, "newer preference should not have been deleted")
|
||||
}
|
||||
|
||||
func testDeleteInvalidVisibleDmsGms(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
userId1 := model.NewId()
|
||||
userId2 := model.NewId()
|
||||
userId3 := model.NewId()
|
||||
userId4 := model.NewId()
|
||||
category := model.PreferenceCategorySidebarSettings
|
||||
name := model.PreferenceLimitVisibleDmsGms
|
||||
|
||||
preferences := model.Preferences{
|
||||
{
|
||||
UserId: userId1,
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "10000",
|
||||
},
|
||||
{
|
||||
UserId: userId2,
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "40",
|
||||
},
|
||||
{
|
||||
UserId: userId3,
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "invalid",
|
||||
},
|
||||
{
|
||||
UserId: model.NewId(),
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "-10",
|
||||
},
|
||||
{
|
||||
UserId: model.NewId(),
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "0",
|
||||
},
|
||||
{
|
||||
UserId: model.NewId(),
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "00000",
|
||||
},
|
||||
{
|
||||
UserId: userId4,
|
||||
Category: category,
|
||||
Name: name,
|
||||
Value: "20",
|
||||
},
|
||||
}
|
||||
|
||||
// Can't insert with Save methods because the values are invalid
|
||||
_, execerr := s.GetMasterX().NamedExec(`
|
||||
INSERT INTO
|
||||
Preferences(UserId, Category, Name, Value)
|
||||
VALUES
|
||||
(:UserId, :Category, :Name, :Value);
|
||||
`, preferences)
|
||||
require.NoError(t, execerr)
|
||||
|
||||
count, err := ss.Preference().DeleteInvalidVisibleDmsGms()
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(5), count)
|
||||
|
||||
preference, err := ss.Preference().Get(userId2, category, name)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &preferences[1], preference)
|
||||
|
||||
preference, err = ss.Preference().Get(userId4, category, name)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, &preferences[6], preference)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user