122 lines
2.9 KiB
Go
122 lines
2.9 KiB
Go
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||
|
// See LICENSE.txt for license information.
|
||
|
|
||
|
package storetests
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"github.com/mattermost/focalboard/server/model"
|
||
|
"github.com/mattermost/focalboard/server/utils"
|
||
|
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
|
||
|
"github.com/mattermost/focalboard/server/services/store"
|
||
|
)
|
||
|
|
||
|
func StoreTestTeamStore(t *testing.T, setup func(t *testing.T) (store.Store, func())) {
|
||
|
t.Run("UpsertTeamSignupToken", func(t *testing.T) {
|
||
|
store, tearDown := setup(t)
|
||
|
defer tearDown()
|
||
|
testUpsertTeamSignupToken(t, store)
|
||
|
})
|
||
|
|
||
|
t.Run("UpsertTeamSettings", func(t *testing.T) {
|
||
|
store, tearDown := setup(t)
|
||
|
defer tearDown()
|
||
|
testUpsertTeamSettings(t, store)
|
||
|
})
|
||
|
|
||
|
t.Run("GetAllTeams", func(t *testing.T) {
|
||
|
store, tearDown := setup(t)
|
||
|
defer tearDown()
|
||
|
testGetAllTeams(t, store)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func testUpsertTeamSignupToken(t *testing.T, store store.Store) {
|
||
|
t.Run("Insert and update team with signup token", func(t *testing.T) {
|
||
|
teamID := "0"
|
||
|
team := &model.Team{
|
||
|
ID: teamID,
|
||
|
SignupToken: utils.NewID(utils.IDTypeToken),
|
||
|
}
|
||
|
|
||
|
// insert
|
||
|
err := store.UpsertTeamSignupToken(*team)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
got, err := store.GetTeam(teamID)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, team.ID, got.ID)
|
||
|
require.Equal(t, team.SignupToken, got.SignupToken)
|
||
|
|
||
|
// update signup token
|
||
|
team.SignupToken = utils.NewID(utils.IDTypeToken)
|
||
|
err = store.UpsertTeamSignupToken(*team)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
got, err = store.GetTeam(teamID)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, team.ID, got.ID)
|
||
|
require.Equal(t, team.SignupToken, got.SignupToken)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func testUpsertTeamSettings(t *testing.T, store store.Store) {
|
||
|
t.Run("Insert and update team with settings", func(t *testing.T) {
|
||
|
teamID := "0"
|
||
|
team := &model.Team{
|
||
|
ID: teamID,
|
||
|
Settings: map[string]interface{}{
|
||
|
"field1": "A",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
// insert
|
||
|
err := store.UpsertTeamSettings(*team)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
got, err := store.GetTeam(teamID)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, team.ID, got.ID)
|
||
|
require.Equal(t, team.Settings, got.Settings)
|
||
|
|
||
|
// update settings
|
||
|
team.Settings = map[string]interface{}{
|
||
|
"field1": "B",
|
||
|
}
|
||
|
err = store.UpsertTeamSettings(*team)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
got2, err := store.GetTeam(teamID)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, team.ID, got2.ID)
|
||
|
require.Equal(t, team.Settings, got2.Settings)
|
||
|
require.Equal(t, got.SignupToken, got2.SignupToken)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func testGetAllTeams(t *testing.T, store store.Store) {
|
||
|
t.Run("Insert multiple team and get all teams", func(t *testing.T) {
|
||
|
// insert
|
||
|
teamCount := 10
|
||
|
for i := 0; i < teamCount; i++ {
|
||
|
teamID := fmt.Sprintf("%d", i)
|
||
|
team := &model.Team{
|
||
|
ID: teamID,
|
||
|
SignupToken: utils.NewID(utils.IDTypeToken),
|
||
|
}
|
||
|
|
||
|
err := store.UpsertTeamSignupToken(*team)
|
||
|
require.NoError(t, err)
|
||
|
}
|
||
|
|
||
|
got, err := store.GetAllTeams()
|
||
|
require.NoError(t, err)
|
||
|
require.Len(t, got, teamCount)
|
||
|
})
|
||
|
}
|