summaryrefslogtreecommitdiffstats
path: root/cmd/platform/channel_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/platform/channel_test.go')
-rw-r--r--cmd/platform/channel_test.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/cmd/platform/channel_test.go b/cmd/platform/channel_test.go
new file mode 100644
index 000000000..1e6915679
--- /dev/null
+++ b/cmd/platform/channel_test.go
@@ -0,0 +1,89 @@
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package main
+
+import (
+ "strings"
+ "testing"
+
+ "github.com/mattermost/mattermost-server/api"
+ "github.com/mattermost/mattermost-server/model"
+ "github.com/stretchr/testify/require"
+)
+
+func TestJoinChannel(t *testing.T) {
+ th := api.Setup().InitBasic()
+ defer th.TearDown()
+
+ channel := th.CreateChannel(th.BasicClient, th.BasicTeam)
+
+ checkCommand(t, "channel", "add", th.BasicTeam.Name+":"+channel.Name, th.BasicUser2.Email)
+
+ // Joining twice should succeed
+ checkCommand(t, "channel", "add", th.BasicTeam.Name+":"+channel.Name, th.BasicUser2.Email)
+
+ // should fail because channel does not exist
+ require.Error(t, runCommand(t, "channel", "add", th.BasicTeam.Name+":"+channel.Name+"asdf", th.BasicUser2.Email))
+}
+
+func TestRemoveChannel(t *testing.T) {
+ th := api.Setup().InitBasic()
+ defer th.TearDown()
+
+ channel := th.CreateChannel(th.BasicClient, th.BasicTeam)
+
+ checkCommand(t, "channel", "add", th.BasicTeam.Name+":"+channel.Name, th.BasicUser2.Email)
+
+ // should fail because channel does not exist
+ require.Error(t, runCommand(t, "channel", "remove", th.BasicTeam.Name+":doesnotexist", th.BasicUser2.Email))
+
+ checkCommand(t, "channel", "remove", th.BasicTeam.Name+":"+channel.Name, th.BasicUser2.Email)
+
+ // Leaving twice should succeed
+ checkCommand(t, "channel", "remove", th.BasicTeam.Name+":"+channel.Name, th.BasicUser2.Email)
+}
+
+func TestListChannels(t *testing.T) {
+ th := api.Setup().InitBasic()
+ defer th.TearDown()
+
+ channel := th.CreateChannel(th.BasicClient, th.BasicTeam)
+ th.BasicClient.Must(th.BasicClient.DeleteChannel(channel.Id))
+
+ output := checkCommand(t, "channel", "list", th.BasicTeam.Name)
+
+ if !strings.Contains(string(output), "town-square") {
+ t.Fatal("should have channels")
+ }
+
+ if !strings.Contains(string(output), channel.Name+" (archived)") {
+ t.Fatal("should have archived channel")
+ }
+}
+
+func TestRestoreChannel(t *testing.T) {
+ th := api.Setup().InitBasic()
+ defer th.TearDown()
+
+ channel := th.CreateChannel(th.BasicClient, th.BasicTeam)
+ th.BasicClient.Must(th.BasicClient.DeleteChannel(channel.Id))
+
+ checkCommand(t, "channel", "restore", th.BasicTeam.Name+":"+channel.Name)
+
+ // restoring twice should succeed
+ checkCommand(t, "channel", "restore", th.BasicTeam.Name+":"+channel.Name)
+}
+
+func TestCreateChannel(t *testing.T) {
+ th := api.Setup().InitBasic()
+ defer th.TearDown()
+
+ id := model.NewId()
+ name := "name" + id
+
+ checkCommand(t, "channel", "create", "--display_name", name, "--team", th.BasicTeam.Name, "--name", name)
+
+ name = name + "-private"
+ checkCommand(t, "channel", "create", "--display_name", name, "--team", th.BasicTeam.Name, "--private", "--name", name)
+}