summaryrefslogtreecommitdiffstats
path: root/cmd/platform/channel_test.go
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2017-11-13 13:59:51 -0600
committerChristopher Speller <crspeller@gmail.com>2017-11-13 11:59:51 -0800
commit865f9f83a7cf2f9eb1fe2735b6bd498f56486f50 (patch)
tree2554279f7682599ca69370557194dfa984557db3 /cmd/platform/channel_test.go
parent1329aa51b605cb54ba9aae3a82a0a87b881fb7b3 (diff)
downloadchat-865f9f83a7cf2f9eb1fe2735b6bd498f56486f50.tar.gz
chat-865f9f83a7cf2f9eb1fe2735b6bd498f56486f50.tar.bz2
chat-865f9f83a7cf2f9eb1fe2735b6bd498f56486f50.zip
Improve test coverage reporting / accuracy (#7819)
* improve test coverage reporting / accuracy * handle absolute coverpaths * move tests into multiple files * rename codecov.yml (https://github.com/codecov/support/issues/426)
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)
+}