[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
Этот коммит содержится в:
Ben Cooke
2024-07-25 15:57:23 -04:00
коммит произвёл GitHub
родитель d89ffe269f
Коммит b244bb621d
25 изменённых файлов: 516 добавлений и 76 удалений

Просмотреть файл

@@ -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)
}