MM-21976: Include cache layer to be tested (#13749)

This commit is contained in:
Mario de Frutos Dieguez
2020-03-04 14:18:03 +01:00
committed by GitHub
parent c9a0418a32
commit b162cf92cd
9 changed files with 88 additions and 34 deletions

View File

@@ -20,6 +20,7 @@ import (
"github.com/mattermost/mattermost-server/v5/mlog"
"github.com/mattermost/mattermost-server/v5/model"
"github.com/mattermost/mattermost-server/v5/store"
"github.com/mattermost/mattermost-server/v5/store/localcachelayer"
"github.com/mattermost/mattermost-server/v5/store/storetest/mocks"
"github.com/mattermost/mattermost-server/v5/testlib"
"github.com/mattermost/mattermost-server/v5/utils"
@@ -52,11 +53,13 @@ type TestHelper struct {
SystemAdminClient *model.Client4
SystemAdminUser *model.User
tempWorkspace string
IncludeCacheLayer bool
}
var mainHelper *testlib.MainHelper
func setupTestHelper(dbStore store.Store, enterprise bool, updateConfig func(*model.Config)) *TestHelper {
func setupTestHelper(dbStore store.Store, enterprise bool, includeCache bool, updateConfig func(*model.Config)) *TestHelper {
tempWorkspace, err := ioutil.TempDir("", "apptest")
if err != nil {
panic(err)
@@ -83,11 +86,16 @@ func setupTestHelper(dbStore store.Store, enterprise bool, updateConfig func(*mo
if err != nil {
panic(err)
}
if includeCache {
// Adds the cache layer to the test store
s.Store = localcachelayer.NewLocalCacheLayer(s.Store, s.Metrics, s.Cluster, s.CacheProvider)
}
th := &TestHelper{
App: s.FakeApp(),
Server: s,
ConfigStore: memoryStore,
App: s.FakeApp(),
Server: s,
ConfigStore: memoryStore,
IncludeCacheLayer: includeCache,
}
th.App.UpdateConfig(func(cfg *model.Config) {
@@ -151,7 +159,7 @@ func SetupEnterprise(tb testing.TB) *TestHelper {
dbStore := mainHelper.GetStore()
dbStore.DropAllTables()
dbStore.MarkSystemRanUnitTests()
return setupTestHelper(dbStore, true, nil)
return setupTestHelper(dbStore, true, true, nil)
}
func Setup(tb testing.TB) *TestHelper {
@@ -166,7 +174,7 @@ func Setup(tb testing.TB) *TestHelper {
dbStore := mainHelper.GetStore()
dbStore.DropAllTables()
dbStore.MarkSystemRanUnitTests()
return setupTestHelper(dbStore, false, nil)
return setupTestHelper(dbStore, false, true, nil)
}
func SetupConfig(tb testing.TB, updateConfig func(cfg *model.Config)) *TestHelper {
@@ -181,11 +189,11 @@ func SetupConfig(tb testing.TB, updateConfig func(cfg *model.Config)) *TestHelpe
dbStore := mainHelper.GetStore()
dbStore.DropAllTables()
dbStore.MarkSystemRanUnitTests()
return setupTestHelper(dbStore, false, updateConfig)
return setupTestHelper(dbStore, false, true, updateConfig)
}
func SetupConfigWithStoreMock(tb testing.TB, updateConfig func(cfg *model.Config)) *TestHelper {
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), false, updateConfig)
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), false, false, updateConfig)
emptyMockStore := mocks.Store{}
emptyMockStore.On("Close").Return(nil)
th.App.Srv().Store = &emptyMockStore
@@ -193,7 +201,7 @@ func SetupConfigWithStoreMock(tb testing.TB, updateConfig func(cfg *model.Config
}
func SetupWithStoreMock(tb testing.TB) *TestHelper {
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), false, nil)
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), false, false, nil)
emptyMockStore := mocks.Store{}
emptyMockStore.On("Close").Return(nil)
th.App.Srv().Store = &emptyMockStore
@@ -201,7 +209,7 @@ func SetupWithStoreMock(tb testing.TB) *TestHelper {
}
func SetupEnterpriseWithStoreMock(tb testing.TB) *TestHelper {
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), true, nil)
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), true, false, nil)
emptyMockStore := mocks.Store{}
emptyMockStore.On("Close").Return(nil)
th.App.Srv().Store = &emptyMockStore
@@ -226,6 +234,10 @@ func (me *TestHelper) ShutdownApp() {
func (me *TestHelper) TearDown() {
utils.DisableDebugLogForTest()
if me.IncludeCacheLayer {
// Clean all the caches
me.App.InvalidateAllCaches()
}
me.ShutdownApp()