mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
- rename slash commands
- "remote" -> "secure-connection"
- "share" -> "share-channel"
- change status icons to text (translated)
- remove channel invite "Description" field
- rename permission "manage_remote_clusters" -> "manage_secure_connections"
148 lines
5.2 KiB
Go
148 lines
5.2 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package app
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/mattermost/mattermost-server/v5/model"
|
|
"github.com/mattermost/mattermost-server/v5/shared/i18n"
|
|
)
|
|
|
|
func TestAddRemoteCluster(t *testing.T) {
|
|
th := Setup(t).InitBasic()
|
|
defer th.TearDown()
|
|
|
|
t.Run("adding remote cluster with duplicate site url and remote team id", func(t *testing.T) {
|
|
remoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test1",
|
|
SiteURL: "http://www1.example.com:8065",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
_, err := th.App.AddRemoteCluster(remoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
remoteCluster.RemoteId = model.NewId()
|
|
_, err = th.App.AddRemoteCluster(remoteCluster)
|
|
require.NotNil(t, err, "Adding a duplicate remote cluster should error")
|
|
assert.Contains(t, err.Error(), i18n.T("api.remote_cluster.save_not_unique.app_error"))
|
|
})
|
|
|
|
t.Run("adding remote cluster with duplicate site url or remote team id is allowed", func(t *testing.T) {
|
|
remoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test2",
|
|
SiteURL: "http://www2.exmaple.com:8065",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
existingRemoteCluster, err := th.App.AddRemoteCluster(remoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
// Same site url but different remote team id
|
|
remoteCluster.RemoteId = model.NewId()
|
|
remoteCluster.RemoteTeamId = model.NewId()
|
|
remoteCluster.SiteURL = existingRemoteCluster.SiteURL
|
|
_, err = th.App.AddRemoteCluster(remoteCluster)
|
|
assert.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
// Same remote team id but different site url
|
|
remoteCluster.RemoteId = model.NewId()
|
|
remoteCluster.RemoteTeamId = existingRemoteCluster.RemoteTeamId
|
|
remoteCluster.SiteURL = existingRemoteCluster.SiteURL + "/new"
|
|
_, err = th.App.AddRemoteCluster(remoteCluster)
|
|
assert.Nil(t, err, "Adding a remote cluster should not error")
|
|
})
|
|
}
|
|
|
|
func TestUpdateRemoteCluster(t *testing.T) {
|
|
th := Setup(t).InitBasic()
|
|
defer th.TearDown()
|
|
|
|
t.Run("update remote cluster with an already existing site url and team id", func(t *testing.T) {
|
|
remoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test3",
|
|
SiteURL: "http://www3.exmaple.com:8065",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
otherRemoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test4",
|
|
SiteURL: "http://www4.example.com:8066",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
_, err := th.App.AddRemoteCluster(remoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
savedRemoteClustered, err := th.App.AddRemoteCluster(otherRemoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
savedRemoteClustered.SiteURL = remoteCluster.SiteURL
|
|
savedRemoteClustered.RemoteTeamId = remoteCluster.RemoteTeamId
|
|
_, err = th.App.UpdateRemoteCluster(savedRemoteClustered)
|
|
require.NotNil(t, err, "Updating remote cluster with duplicate site url should error")
|
|
assert.Contains(t, err.Error(), i18n.T("api.remote_cluster.update_not_unique.app_error"))
|
|
})
|
|
|
|
t.Run("update remote cluster with an already existing site url or team id, is allowed", func(t *testing.T) {
|
|
remoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test5",
|
|
SiteURL: "http://www5.example.com:8065",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
otherRemoteCluster := &model.RemoteCluster{
|
|
RemoteTeamId: model.NewId(),
|
|
Name: "test6",
|
|
SiteURL: "http://www6.example.com:8065",
|
|
Token: model.NewId(),
|
|
RemoteToken: model.NewId(),
|
|
Topics: "",
|
|
CreatorId: th.BasicUser.Id,
|
|
}
|
|
|
|
existingRemoteCluster, err := th.App.AddRemoteCluster(remoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
anotherExistingRemoteClustered, err := th.App.AddRemoteCluster(otherRemoteCluster)
|
|
require.Nil(t, err, "Adding a remote cluster should not error")
|
|
|
|
// Same site url but different remote team id
|
|
anotherExistingRemoteClustered.SiteURL = existingRemoteCluster.SiteURL
|
|
anotherExistingRemoteClustered.RemoteTeamId = model.NewId()
|
|
_, err = th.App.UpdateRemoteCluster(anotherExistingRemoteClustered)
|
|
assert.Nil(t, err, "Updating remote cluster should not error")
|
|
|
|
// Same remote team id but different site url
|
|
anotherExistingRemoteClustered.SiteURL = existingRemoteCluster.SiteURL + "/new"
|
|
anotherExistingRemoteClustered.RemoteTeamId = existingRemoteCluster.RemoteTeamId
|
|
_, err = th.App.UpdateRemoteCluster(anotherExistingRemoteClustered)
|
|
assert.Nil(t, err, "Updating remote cluster should not error")
|
|
})
|
|
}
|