[MM-31094] Replication Lag (#16888)
* MM-31094: Adds tooling to develop and test using a MySQL instance with replication lag. Adds some lazy lookups to fallback to master if results are not found. * MM-31094: Removes mysql-read-replica from default docker services. * MM-31094: Switches (store..SessionStore).Get and (store.TeamStore).GetMember to using context.Context. * MM-31094: Updates (store.UsersStore).Get to use context. * MM-31094: Updates (store.PostStore).Get to use context. * MM-31094: Removes feature flag and config setting. * MM-31094: Rolls back some master reads. * MM-31094: Rolls a non-cache read. * MM-31094: Removes feature flag from the store. * MM-31094: Removes unused constant and struct field. * MM-31094: Removes some old feature flag references. * MM-31094: Fixes some tests. * MM-31094: App layers fix. * MM-31094: Fixes mocks. * MM-31094: Don't reparse flag. * MM-31094: No reparse. * MM-31094: Removed unused FeatureFlags field. * MM-31094: Removes unnecessary feature flags variable declarations. * MM-31094: Fixes copy-paste error. * MM-31094: Fixes logical error. * MM-30194: Removes test method from store. * Revert "MM-30194: Removes test method from store." This reverts commit d5a6e8529bd5f4d993824c828e239d009b05e567. * MM-31094: Conforming to make's strange syntax. * MM-31094: Configures helper for read replica with option. * MM-31094: Adds some missing ctx's. * MM-31094: WIP * MM-31094: Updates test names. * MM-31094: WIP * MM-31094: Removes unnecessary master reads. * MM-31094: ID case changes out of scope. * MM-31094: Removes unused context. * MM-31094: Switches to a helper. Removes some var naming changes. Fixes a merge error. * MM-31094: Removes SQLITE db driver ref. * MM-31094: Layer generate fix. * MM-31094: Removes unnecessary changes. * MM-31094: Moves test method. * MM-31094: Re-add previous fix. * MM-31094: Removes make command for dev. * MM-31094: Fix for login. Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
f31a9ed1a8
Коммит
58dce5930e
@@ -5,6 +5,8 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
||||
model "github.com/mattermost/mattermost-server/v5/model"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
@@ -100,13 +102,13 @@ func (_m *PostStore) Delete(postID string, time int64, deleteByID string) error
|
||||
return r0
|
||||
}
|
||||
|
||||
// Get provides a mock function with given fields: id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended
|
||||
func (_m *PostStore) Get(id string, skipFetchThreads bool, collapsedThreads bool, collapsedThreadsExtended bool) (*model.PostList, error) {
|
||||
ret := _m.Called(id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
// Get provides a mock function with given fields: ctx, id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended
|
||||
func (_m *PostStore) Get(ctx context.Context, id string, skipFetchThreads bool, collapsedThreads bool, collapsedThreadsExtended bool) (*model.PostList, error) {
|
||||
ret := _m.Called(ctx, id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
|
||||
var r0 *model.PostList
|
||||
if rf, ok := ret.Get(0).(func(string, bool, bool, bool) *model.PostList); ok {
|
||||
r0 = rf(id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string, bool, bool, bool) *model.PostList); ok {
|
||||
r0 = rf(ctx, id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*model.PostList)
|
||||
@@ -114,8 +116,8 @@ func (_m *PostStore) Get(id string, skipFetchThreads bool, collapsedThreads bool
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, bool, bool, bool) error); ok {
|
||||
r1 = rf(id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string, bool, bool, bool) error); ok {
|
||||
r1 = rf(ctx, id, skipFetchThreads, collapsedThreads, collapsedThreadsExtended)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
||||
model "github.com/mattermost/mattermost-server/v5/model"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
@@ -40,13 +42,13 @@ func (_m *SessionStore) Cleanup(expiryTime int64, batchSize int64) {
|
||||
_m.Called(expiryTime, batchSize)
|
||||
}
|
||||
|
||||
// Get provides a mock function with given fields: sessionIDOrToken
|
||||
func (_m *SessionStore) Get(sessionIDOrToken string) (*model.Session, error) {
|
||||
ret := _m.Called(sessionIDOrToken)
|
||||
// Get provides a mock function with given fields: ctx, sessionIDOrToken
|
||||
func (_m *SessionStore) Get(ctx context.Context, sessionIDOrToken string) (*model.Session, error) {
|
||||
ret := _m.Called(ctx, sessionIDOrToken)
|
||||
|
||||
var r0 *model.Session
|
||||
if rf, ok := ret.Get(0).(func(string) *model.Session); ok {
|
||||
r0 = rf(sessionIDOrToken)
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string) *model.Session); ok {
|
||||
r0 = rf(ctx, sessionIDOrToken)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*model.Session)
|
||||
@@ -54,8 +56,8 @@ func (_m *SessionStore) Get(sessionIDOrToken string) (*model.Session, error) {
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string) error); ok {
|
||||
r1 = rf(sessionIDOrToken)
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string) error); ok {
|
||||
r1 = rf(ctx, sessionIDOrToken)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
@@ -462,13 +462,13 @@ func (_m *TeamStore) GetChannelUnreadsForTeam(teamID string, userId string) ([]*
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetMember provides a mock function with given fields: teamID, userId
|
||||
func (_m *TeamStore) GetMember(teamID string, userId string) (*model.TeamMember, error) {
|
||||
ret := _m.Called(teamID, userId)
|
||||
// GetMember provides a mock function with given fields: ctx, teamID, userId
|
||||
func (_m *TeamStore) GetMember(ctx context.Context, teamID string, userId string) (*model.TeamMember, error) {
|
||||
ret := _m.Called(ctx, teamID, userId)
|
||||
|
||||
var r0 *model.TeamMember
|
||||
if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok {
|
||||
r0 = rf(teamID, userId)
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string, string) *model.TeamMember); ok {
|
||||
r0 = rf(ctx, teamID, userId)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*model.TeamMember)
|
||||
@@ -476,8 +476,8 @@ func (_m *TeamStore) GetMember(teamID string, userId string) (*model.TeamMember,
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, string) error); ok {
|
||||
r1 = rf(teamID, userId)
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
|
||||
r1 = rf(ctx, teamID, userId)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -384,7 +385,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
|
||||
err = ss.OAuth().DeleteApp(a1.Id)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, nErr = ss.Session().Get(s1.Token)
|
||||
_, nErr = ss.Session().Get(context.Background(), s1.Token)
|
||||
require.Error(t, nErr, "should error - session should be deleted")
|
||||
|
||||
_, err = ss.OAuth().GetAccessData(s1.Token)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
@@ -416,14 +417,14 @@ func testPostStoreGet(t *testing.T, ss store.Store) {
|
||||
etag2 := ss.Post().GetEtag(o1.ChannelId, false, false)
|
||||
require.Equal(t, 0, strings.Index(etag2, fmt.Sprintf("%v.%v", model.CurrentVersion, o1.UpdateAt)), "Invalid Etag")
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, r1.Posts[o1.Id].CreateAt, o1.CreateAt, "invalid returned post")
|
||||
|
||||
_, err = ss.Post().Get("123", false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), "123", false, false, false)
|
||||
require.Error(t, err, "Missing id should have failed")
|
||||
|
||||
_, err = ss.Post().Get("", false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), "", false, false, false)
|
||||
require.Error(t, err, "should fail for blank post ids")
|
||||
}
|
||||
|
||||
@@ -468,15 +469,15 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
o3, err = ss.Post().Save(o3)
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro1 := r1.Posts[o1.Id]
|
||||
|
||||
r2, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r2, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2 := r2.Posts[o2.Id]
|
||||
|
||||
r3, err := ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err := ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3 := r3.Posts[o3.Id]
|
||||
|
||||
@@ -487,7 +488,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Update(o1a, ro1)
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
ro1a := r1.Posts[o1.Id]
|
||||
@@ -498,7 +499,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Update(o2a, ro2)
|
||||
require.NoError(t, err)
|
||||
|
||||
r2, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
r2, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2a := r2.Posts[o2.Id]
|
||||
|
||||
@@ -509,7 +510,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Update(o3a, ro3)
|
||||
require.NoError(t, err)
|
||||
|
||||
r3, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3a := r3.Posts[o3.Id]
|
||||
|
||||
@@ -525,7 +526,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
r4, err := ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, err := ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro4 := r4.Posts[o4.Id]
|
||||
|
||||
@@ -535,7 +536,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Update(o4a, ro4)
|
||||
require.NoError(t, err)
|
||||
|
||||
r4, err = ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, err = ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
ro4a := r4.Posts[o4.Id]
|
||||
@@ -556,7 +557,7 @@ func testPostStoreDelete(t *testing.T, ss store.Store) {
|
||||
o1, err := ss.Post().Save(o1)
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, r1.Posts[o1.Id].CreateAt, o1.CreateAt, "invalid returned post")
|
||||
|
||||
@@ -569,7 +570,7 @@ func testPostStoreDelete(t *testing.T, ss store.Store) {
|
||||
|
||||
assert.Equal(t, deleteByID, actual, "Expected (*Post).Props[model.POST_PROPS_DELETE_BY] to be %v but got %v.", deleteByID, actual)
|
||||
|
||||
r3, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r3, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.Error(t, err, "Missing id should have failed - PostList %v", r3)
|
||||
|
||||
etag2 := ss.Post().GetEtag(o1.ChannelId, false, false)
|
||||
@@ -596,10 +597,10 @@ func testPostStoreDelete1Level(t *testing.T, ss store.Store) {
|
||||
err = ss.Post().Delete(o1.Id, model.GetMillis(), "")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o2.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
}
|
||||
|
||||
@@ -639,16 +640,16 @@ func testPostStoreDelete2Level(t *testing.T, ss store.Store) {
|
||||
err = ss.Post().Delete(o1.Id, model.GetMillis(), "")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o2.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o4.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -679,16 +680,16 @@ func testPostStorePermDelete1Level(t *testing.T, ss store.Store) {
|
||||
err2 := ss.Post().PermanentDeleteByUser(o2.UserId)
|
||||
require.NoError(t, err2)
|
||||
|
||||
_, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err, "Deleted id shouldn't have failed")
|
||||
|
||||
_, err = ss.Post().Get(o2.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
err = ss.Post().PermanentDeleteByChannel(o3.ChannelId)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
}
|
||||
|
||||
@@ -719,13 +720,13 @@ func testPostStorePermDelete1Level2(t *testing.T, ss store.Store) {
|
||||
err2 := ss.Post().PermanentDeleteByUser(o1.UserId)
|
||||
require.NoError(t, err2)
|
||||
|
||||
_, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o2.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.Error(t, err, "Deleted id should have failed")
|
||||
|
||||
_, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err, "Deleted id should have failed")
|
||||
}
|
||||
|
||||
@@ -755,7 +756,7 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
|
||||
o3, err = ss.Post().Save(o3)
|
||||
require.NoError(t, err)
|
||||
|
||||
pl, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
pl, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, pl.Posts, 3, "invalid returned post")
|
||||
@@ -763,7 +764,7 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
|
||||
dErr := ss.Post().Delete(o3.Id, model.GetMillis(), "")
|
||||
require.NoError(t, dErr)
|
||||
|
||||
pl, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
pl, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, pl.Posts, 2, "invalid returned post")
|
||||
@@ -771,7 +772,7 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
|
||||
dErr = ss.Post().Delete(o2.Id, model.GetMillis(), "")
|
||||
require.NoError(t, dErr)
|
||||
|
||||
pl, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
pl, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, pl.Posts, 1, "invalid returned post")
|
||||
@@ -2241,23 +2242,23 @@ func testPostStoreOverwriteMultiple(t *testing.T, ss store.Store) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro1 := r1.Posts[o1.Id]
|
||||
|
||||
r2, err := ss.Post().Get(o2.Id, false, false, false)
|
||||
r2, err := ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2 := r2.Posts[o2.Id]
|
||||
|
||||
r3, err := ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err := ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3 := r3.Posts[o3.Id]
|
||||
|
||||
r4, err := ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, err := ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro4 := r4.Posts[o4.Id]
|
||||
|
||||
r5, err := ss.Post().Get(o5.Id, false, false, false)
|
||||
r5, err := ss.Post().Get(context.Background(), o5.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro5 := r5.Posts[o5.Id]
|
||||
|
||||
@@ -2283,15 +2284,15 @@ func testPostStoreOverwriteMultiple(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, -1, errIdx)
|
||||
|
||||
r1, nErr := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, nErr := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, nErr)
|
||||
ro1a := r1.Posts[o1.Id]
|
||||
|
||||
r2, nErr = ss.Post().Get(o1.Id, false, false, false)
|
||||
r2, nErr = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, nErr)
|
||||
ro2a := r2.Posts[o2.Id]
|
||||
|
||||
r3, nErr = ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, nErr = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, nErr)
|
||||
ro3a := r3.Posts[o3.Id]
|
||||
|
||||
@@ -2313,11 +2314,11 @@ func testPostStoreOverwriteMultiple(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, -1, errIdx)
|
||||
|
||||
r4, nErr := ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, nErr := ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, nErr)
|
||||
ro4a := r4.Posts[o4.Id]
|
||||
|
||||
r5, nErr = ss.Post().Get(o5.Id, false, false, false)
|
||||
r5, nErr = ss.Post().Get(context.Background(), o5.Id, false, false, false)
|
||||
require.NoError(t, nErr)
|
||||
ro5a := r5.Posts[o5.Id]
|
||||
|
||||
@@ -2360,19 +2361,19 @@ func testPostStoreOverwrite(t *testing.T, ss store.Store) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro1 := r1.Posts[o1.Id]
|
||||
|
||||
r2, err := ss.Post().Get(o2.Id, false, false, false)
|
||||
r2, err := ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2 := r2.Posts[o2.Id]
|
||||
|
||||
r3, err := ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err := ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3 := r3.Posts[o3.Id]
|
||||
|
||||
r4, err := ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, err := ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro4 := r4.Posts[o4.Id]
|
||||
|
||||
@@ -2397,15 +2398,15 @@ func testPostStoreOverwrite(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Overwrite(o3a)
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro1a := r1.Posts[o1.Id]
|
||||
|
||||
r2, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
r2, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2a := r2.Posts[o2.Id]
|
||||
|
||||
r3, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3a := r3.Posts[o3.Id]
|
||||
|
||||
@@ -2421,7 +2422,7 @@ func testPostStoreOverwrite(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().Overwrite(o4a)
|
||||
require.NoError(t, err)
|
||||
|
||||
r4, err = ss.Post().Get(o4.Id, false, false, false)
|
||||
r4, err = ss.Post().Get(context.Background(), o4.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
ro4a := r4.Posts[o4.Id]
|
||||
@@ -2452,15 +2453,15 @@ func testPostStoreGetPostsByIds(t *testing.T, ss store.Store) {
|
||||
o3, err = ss.Post().Save(o3)
|
||||
require.NoError(t, err)
|
||||
|
||||
r1, err := ss.Post().Get(o1.Id, false, false, false)
|
||||
r1, err := ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro1 := r1.Posts[o1.Id]
|
||||
|
||||
r2, err := ss.Post().Get(o2.Id, false, false, false)
|
||||
r2, err := ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro2 := r2.Posts[o2.Id]
|
||||
|
||||
r3, err := ss.Post().Get(o3.Id, false, false, false)
|
||||
r3, err := ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
ro3 := r3.Posts[o3.Id]
|
||||
|
||||
@@ -2567,13 +2568,13 @@ func testPostStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Post().PermanentDeleteBatch(2000, 1000)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Post().Get(o1.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o1.Id, false, false, false)
|
||||
require.Error(t, err, "Should have not found post 1 after purge")
|
||||
|
||||
_, err = ss.Post().Get(o2.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o2.Id, false, false, false)
|
||||
require.Error(t, err, "Should have not found post 2 after purge")
|
||||
|
||||
_, err = ss.Post().Get(o3.Id, false, false, false)
|
||||
_, err = ss.Post().Get(context.Background(), o3.Id, false, false, false)
|
||||
require.NoError(t, err, "Should have not found post 3 after purge")
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -52,7 +53,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
|
||||
assert.Zero(t, saved.DeleteAt, "should've saved reaction delete_at with zero value and returned it")
|
||||
|
||||
var secondUpdateAt int64
|
||||
postList, err := ss.Post().Get(reaction1.PostId, false, false, false)
|
||||
postList, err := ss.Post().Get(context.Background(), reaction1.PostId, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.True(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = true on post")
|
||||
@@ -76,7 +77,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Reaction().Save(reaction2)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
postList, err = ss.Post().Get(reaction2.PostId, false, false, false)
|
||||
postList, err = ss.Post().Get(context.Background(), reaction2.PostId, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, secondUpdateAt, "should've marked post as updated even if HasReactions doesn't change")
|
||||
@@ -126,7 +127,7 @@ func testReactionDelete(t *testing.T, ss store.Store) {
|
||||
_, nErr := ss.Reaction().Save(reaction)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
result, err := ss.Post().Get(reaction.PostId, false, false, false)
|
||||
result, err := ss.Post().Get(context.Background(), reaction.PostId, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
firstUpdateAt := result.Posts[post.Id].UpdateAt
|
||||
@@ -139,7 +140,7 @@ func testReactionDelete(t *testing.T, ss store.Store) {
|
||||
|
||||
assert.Empty(t, reactions, "should've deleted reaction")
|
||||
|
||||
postList, err := ss.Post().Get(post.Id, false, false, false)
|
||||
postList, err := ss.Post().Get(context.Background(), post.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.False(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = false on post")
|
||||
@@ -362,15 +363,15 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
|
||||
assert.Empty(t, returned, "should've only removed reactions with emoji name")
|
||||
|
||||
// check that the posts are updated
|
||||
postList, err := ss.Post().Get(post.Id, false, false, false)
|
||||
postList, err := ss.Post().Get(context.Background(), post.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, postList.Posts[post.Id].HasReactions, "post should still have reactions")
|
||||
|
||||
postList, err = ss.Post().Get(post2.Id, false, false, false)
|
||||
postList, err = ss.Post().Get(context.Background(), post2.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, postList.Posts[post2.Id].HasReactions, "post should still have reactions")
|
||||
|
||||
postList, err = ss.Post().Get(post3.Id, false, false, false)
|
||||
postList, err = ss.Post().Get(context.Background(), post3.Id, false, false, false)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more")
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -65,7 +66,7 @@ func testSessionGet(t *testing.T, ss store.Store) {
|
||||
s3, err = ss.Session().Save(s3)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
@@ -110,14 +111,14 @@ func testSessionRemove(t *testing.T, ss store.Store) {
|
||||
s1, err := ss.Session().Save(s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Id)
|
||||
require.NoError(t, removeErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.Error(t, err, "should have been removed")
|
||||
}
|
||||
|
||||
@@ -128,14 +129,14 @@ func testSessionRemoveAll(t *testing.T, ss store.Store) {
|
||||
s1, err := ss.Session().Save(s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().RemoveAllSessions()
|
||||
require.NoError(t, removeErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.Error(t, err, "should have been removed")
|
||||
}
|
||||
|
||||
@@ -146,14 +147,14 @@ func testSessionRemoveByUser(t *testing.T, ss store.Store) {
|
||||
s1, err := ss.Session().Save(s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId)
|
||||
require.NoError(t, deleteErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.Error(t, err, "should have been removed")
|
||||
}
|
||||
|
||||
@@ -164,14 +165,14 @@ func testSessionRemoveToken(t *testing.T, ss store.Store) {
|
||||
s1, err := ss.Session().Save(s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Token)
|
||||
require.NoError(t, removeErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.Error(t, err, "should have been removed")
|
||||
|
||||
data, err := ss.Session().GetSessions(s1.UserId)
|
||||
@@ -229,7 +230,7 @@ func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) {
|
||||
err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly")
|
||||
}
|
||||
@@ -244,7 +245,7 @@ func testSessionStoreUpdateLastActivityAt(t *testing.T, ss store.Store) {
|
||||
err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly")
|
||||
}
|
||||
@@ -295,16 +296,16 @@ func testSessionCleanup(t *testing.T, ss store.Store) {
|
||||
|
||||
ss.Session().Cleanup(now, 1)
|
||||
|
||||
_, err = ss.Session().Get(s1.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().Get(s2.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s2.Id)
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().Get(s3.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s3.Id)
|
||||
assert.Error(t, err)
|
||||
|
||||
_, err = ss.Session().Get(s4.Id)
|
||||
_, err = ss.Session().Get(context.Background(), s4.Id)
|
||||
assert.Error(t, err)
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Id)
|
||||
@@ -377,19 +378,19 @@ func testUpdateExpiredNotify(t *testing.T, ss store.Store) {
|
||||
s1, err := ss.Session().Save(s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
session, err := ss.Session().Get(s1.Id)
|
||||
session, err := ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.False(t, session.ExpiredNotify)
|
||||
|
||||
err = ss.Session().UpdateExpiredNotify(session.Id, true)
|
||||
require.NoError(t, err)
|
||||
session, err = ss.Session().Get(s1.Id)
|
||||
session, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.True(t, session.ExpiredNotify)
|
||||
|
||||
err = ss.Session().UpdateExpiredNotify(session.Id, false)
|
||||
require.NoError(t, err)
|
||||
session, err = ss.Session().Get(s1.Id)
|
||||
session, err = ss.Session().Get(context.Background(), s1.Id)
|
||||
require.NoError(t, err)
|
||||
require.False(t, session.ExpiredNotify)
|
||||
}
|
||||
|
||||
@@ -20,9 +20,10 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
defaultMysqlDSN = "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true"
|
||||
defaultPostgresqlDSN = "postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10"
|
||||
defaultMysqlRootPWD = "mostest"
|
||||
defaultMysqlDSN = "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s&multiStatements=true"
|
||||
defaultPostgresqlDSN = "postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10"
|
||||
defaultMysqlRootPWD = "mostest"
|
||||
defaultMysqlReplicaDSN = "root:mostest@tcp(localhost:3307)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s"
|
||||
)
|
||||
|
||||
func getEnv(name, defaultValue string) string {
|
||||
@@ -48,7 +49,7 @@ func log(message string) {
|
||||
|
||||
// MySQLSettings returns the database settings to connect to the MySQL unittesting database.
|
||||
// The database name is generated randomly and must be created before use.
|
||||
func MySQLSettings() *model.SqlSettings {
|
||||
func MySQLSettings(withReplica bool) *model.SqlSettings {
|
||||
dsn := getEnv("TEST_DATABASE_MYSQL_DSN", defaultMysqlDSN)
|
||||
cfg, err := mysql.ParseDSN(dsn)
|
||||
if err != nil {
|
||||
@@ -57,7 +58,13 @@ func MySQLSettings() *model.SqlSettings {
|
||||
|
||||
cfg.DBName = "db" + model.NewId()
|
||||
|
||||
return databaseSettings("mysql", cfg.FormatDSN())
|
||||
mySQLSettings := databaseSettings("mysql", cfg.FormatDSN())
|
||||
|
||||
if withReplica {
|
||||
mySQLSettings.DataSourceReplicas = []string{getEnv("TEST_DATABASE_MYSQL_REPLICA_DSN", defaultMysqlReplicaDSN)}
|
||||
}
|
||||
|
||||
return mySQLSettings
|
||||
}
|
||||
|
||||
// PostgresSQLSettings returns the database settings to connect to the PostgreSQL unittesting database.
|
||||
@@ -174,15 +181,29 @@ func execAsRoot(settings *model.SqlSettings, sqlCommand string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func replaceMySQLDatabaseName(dsn, newDBName string) string {
|
||||
cfg, err := mysql.ParseDSN(dsn)
|
||||
if err != nil {
|
||||
panic("failed to parse dsn " + dsn + ": " + err.Error())
|
||||
}
|
||||
cfg.DBName = newDBName
|
||||
return cfg.FormatDSN()
|
||||
}
|
||||
|
||||
// MakeSqlSettings creates a randomly named database and returns the corresponding sql settings
|
||||
func MakeSqlSettings(driver string) *model.SqlSettings {
|
||||
func MakeSqlSettings(driver string, withReplica bool) *model.SqlSettings {
|
||||
var settings *model.SqlSettings
|
||||
var dbName string
|
||||
|
||||
switch driver {
|
||||
case model.DATABASE_DRIVER_MYSQL:
|
||||
settings = MySQLSettings()
|
||||
settings = MySQLSettings(withReplica)
|
||||
dbName = mySQLDSNDatabase(*settings.DataSource)
|
||||
newDSRs := []string{}
|
||||
for _, dataSource := range settings.DataSourceReplicas {
|
||||
newDSRs = append(newDSRs, replaceMySQLDatabaseName(dataSource, dbName))
|
||||
}
|
||||
settings.DataSourceReplicas = newDSRs
|
||||
case model.DATABASE_DRIVER_POSTGRES:
|
||||
settings = PostgreSQLSettings()
|
||||
dbName = postgreSQLDSNDatabase(*settings.DataSource)
|
||||
|
||||
@@ -2855,17 +2855,17 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, nErr)
|
||||
|
||||
var rm1 *model.TeamMember
|
||||
rm1, err := ss.Team().GetMember(m1.TeamId, m1.UserId)
|
||||
rm1, err := ss.Team().GetMember(context.Background(), m1.TeamId, m1.UserId)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, rm1.TeamId, m1.TeamId, "bad team id")
|
||||
|
||||
require.Equal(t, rm1.UserId, m1.UserId, "bad user id")
|
||||
|
||||
_, err = ss.Team().GetMember(m1.TeamId, "")
|
||||
_, err = ss.Team().GetMember(context.Background(), m1.TeamId, "")
|
||||
require.Error(t, err, "empty user id - should have failed")
|
||||
|
||||
_, err = ss.Team().GetMember("", m1.UserId)
|
||||
_, err = ss.Team().GetMember(context.Background(), "", m1.UserId)
|
||||
require.Error(t, err, "empty team id - should have failed")
|
||||
|
||||
// Test with a custom team scheme.
|
||||
@@ -2895,7 +2895,7 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Team().SaveMember(m2, -1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
m3, err := ss.Team().GetMember(m2.TeamId, m2.UserId)
|
||||
m3, err := ss.Team().GetMember(context.Background(), m2.TeamId, m2.UserId)
|
||||
require.NoError(t, err)
|
||||
t.Log(m3)
|
||||
|
||||
@@ -2905,7 +2905,7 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Team().SaveMember(m4, -1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
m5, err := ss.Team().GetMember(m4.TeamId, m4.UserId)
|
||||
m5, err := ss.Team().GetMember(context.Background(), m4.TeamId, m4.UserId)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, s2.DefaultTeamGuestRole, m5.Roles)
|
||||
@@ -3216,19 +3216,19 @@ func testTeamStoreMigrateTeamMembers(t *testing.T, ss store.Store) {
|
||||
}
|
||||
}
|
||||
|
||||
tm1b, err := ss.Team().GetMember(tm1.TeamId, tm1.UserId)
|
||||
tm1b, err := ss.Team().GetMember(context.Background(), tm1.TeamId, tm1.UserId)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "", tm1b.ExplicitRoles)
|
||||
assert.True(t, tm1b.SchemeUser)
|
||||
assert.True(t, tm1b.SchemeAdmin)
|
||||
|
||||
tm2b, err := ss.Team().GetMember(tm2.TeamId, tm2.UserId)
|
||||
tm2b, err := ss.Team().GetMember(context.Background(), tm2.TeamId, tm2.UserId)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "", tm2b.ExplicitRoles)
|
||||
assert.True(t, tm2b.SchemeUser)
|
||||
assert.False(t, tm2b.SchemeAdmin)
|
||||
|
||||
tm3b, err := ss.Team().GetMember(tm3.TeamId, tm3.UserId)
|
||||
tm3b, err := ss.Team().GetMember(context.Background(), tm3.TeamId, tm3.UserId)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "something_else", tm3b.ExplicitRoles)
|
||||
assert.False(t, tm3b.SchemeUser)
|
||||
@@ -3309,19 +3309,19 @@ func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
|
||||
|
||||
require.NoError(t, (ss.Team().ClearAllCustomRoleAssignments()))
|
||||
|
||||
r1, err := ss.Team().GetMember(m1.TeamId, m1.UserId)
|
||||
r1, err := ss.Team().GetMember(context.Background(), m1.TeamId, m1.UserId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, m1.ExplicitRoles, r1.Roles)
|
||||
|
||||
r2, err := ss.Team().GetMember(m2.TeamId, m2.UserId)
|
||||
r2, err := ss.Team().GetMember(context.Background(), m2.TeamId, m2.UserId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "team_user team_admin", r2.Roles)
|
||||
|
||||
r3, err := ss.Team().GetMember(m3.TeamId, m3.UserId)
|
||||
r3, err := ss.Team().GetMember(context.Background(), m3.TeamId, m3.UserId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, m3.ExplicitRoles, r3.Roles)
|
||||
|
||||
r4, err := ss.Team().GetMember(m4.TeamId, m4.UserId)
|
||||
r4, err := ss.Team().GetMember(context.Background(), m4.TeamId, m4.UserId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "", r4.Roles)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -69,7 +70,7 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
|
||||
|
||||
newPosts, errIdx, err3 := ss.Post().SaveMultiple([]*model.Post{&o2, &o3, &o4})
|
||||
|
||||
olist, _ := ss.Post().Get(otmp.Id, true, false, false)
|
||||
olist, _ := ss.Post().Get(context.Background(), otmp.Id, true, false, false)
|
||||
o1 := olist.Posts[olist.Order[0]]
|
||||
|
||||
newPosts = append([]*model.Post{o1}, newPosts...)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -57,7 +58,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().Delete(uat.Id)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Token)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Token)
|
||||
require.Error(t, err, "should error - session should be deleted")
|
||||
|
||||
_, nErr = ss.UserAccessToken().GetByToken(s1.Token)
|
||||
@@ -76,7 +77,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
_, err = ss.Session().Get(s2.Token)
|
||||
_, err = ss.Session().Get(context.Background(), s2.Token)
|
||||
require.Error(t, err, "should error - session should be deleted")
|
||||
|
||||
_, nErr = ss.UserAccessToken().GetByToken(s2.Token)
|
||||
@@ -103,7 +104,7 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
_, err = ss.Session().Get(s1.Token)
|
||||
_, err = ss.Session().Get(context.Background(), s1.Token)
|
||||
require.Error(t, err, "should error - session should be deleted")
|
||||
|
||||
s2 := &model.Session{}
|
||||
|
||||
@@ -4841,7 +4841,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, "system_user", updatedUser.Roles)
|
||||
require.True(t, user.UpdateAt < updatedUser.UpdateAt)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -4886,7 +4886,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user system_admin", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -4942,7 +4942,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -4982,7 +4982,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5027,7 +5027,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user custom_role", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5093,7 +5093,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId1, user1.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId1, user1.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5107,7 +5107,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest", notUpdatedUser.Roles)
|
||||
|
||||
notUpdatedTeamMember, nErr := ss.Team().GetMember(teamId2, user2.Id)
|
||||
notUpdatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId2, user2.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, notUpdatedTeamMember.SchemeGuest)
|
||||
require.False(t, notUpdatedTeamMember.SchemeUser)
|
||||
@@ -5154,7 +5154,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
require.True(t, user.UpdateAt < updatedUser.UpdateAt)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, updatedUser.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, updatedUser.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5197,7 +5197,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5249,7 +5249,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5287,7 +5287,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5330,7 +5330,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest custom_role", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId, user.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId, user.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5394,7 +5394,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(teamId1, user1.Id)
|
||||
updatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId1, user1.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5408,7 +5408,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "system_user", notUpdatedUser.Roles)
|
||||
|
||||
notUpdatedTeamMember, nErr := ss.Team().GetMember(teamId2, user2.Id)
|
||||
notUpdatedTeamMember, nErr := ss.Team().GetMember(context.Background(), teamId2, user2.Id)
|
||||
require.NoError(t, nErr)
|
||||
require.False(t, notUpdatedTeamMember.SchemeGuest)
|
||||
require.True(t, notUpdatedTeamMember.SchemeUser)
|
||||
|
||||
Ссылка в новой задаче
Block a user