[MM-37898] Exclude bots from initial user store emptiness check (#18139)

* Exclude bots from initial user store emptiness check

* Add test
Этот коммит содержится в:
Claudio Costa
2021-08-14 07:40:16 +02:00
коммит произвёл GitHub
родитель cbba2f1cca
Коммит 308a88efb1
9 изменённых файлов: 123 добавлений и 22 удалений

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

@@ -1038,20 +1038,20 @@ func (_m *UserStore) InvalidateProfilesInChannelCacheByUser(userID string) {
_m.Called(userID)
}
// IsEmpty provides a mock function with given fields:
func (_m *UserStore) IsEmpty() (bool, error) {
ret := _m.Called()
// IsEmpty provides a mock function with given fields: excludeBots
func (_m *UserStore) IsEmpty(excludeBots bool) (bool, error) {
ret := _m.Called(excludeBots)
var r0 bool
if rf, ok := ret.Get(0).(func() bool); ok {
r0 = rf()
if rf, ok := ret.Get(0).(func(bool) bool); ok {
r0 = rf(excludeBots)
} else {
r0 = ret.Get(0).(bool)
}
var r1 error
if rf, ok := ret.Get(1).(func() error); ok {
r1 = rf()
if rf, ok := ret.Get(1).(func(bool) error); ok {
r1 = rf(excludeBots)
} else {
r1 = ret.Error(1)
}

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

@@ -5714,26 +5714,51 @@ func testGetKnownUsers(t *testing.T, ss store.Store) {
}
func testIsEmpty(t *testing.T, ss store.Store) {
ok, err := ss.User().IsEmpty()
ok, err := ss.User().IsEmpty(false)
require.NoError(t, err)
require.True(t, ok)
u := model.User{
ok, err = ss.User().IsEmpty(true)
require.NoError(t, err)
require.True(t, ok)
u := &model.User{
Email: MakeEmail(),
Username: model.NewId(),
}
_, err = ss.User().Save(&u)
u, err = ss.User().Save(u)
require.NoError(t, err)
ok, err = ss.User().IsEmpty()
ok, err = ss.User().IsEmpty(false)
require.NoError(t, err)
require.False(t, ok)
ok, err = ss.User().IsEmpty(true)
require.NoError(t, err)
require.False(t, ok)
b := &model.Bot{
UserId: u.Id,
OwnerId: model.NewId(),
Username: model.NewId(),
}
_, err = ss.Bot().Save(b)
require.NoError(t, err)
ok, err = ss.User().IsEmpty(false)
require.NoError(t, err)
require.False(t, ok)
ok, err = ss.User().IsEmpty(true)
require.NoError(t, err)
require.True(t, ok)
err = ss.User().PermanentDelete(u.Id)
require.NoError(t, err)
ok, err = ss.User().IsEmpty()
ok, err = ss.User().IsEmpty(false)
require.NoError(t, err)
require.True(t, ok)
}