mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* [PTL-7537] implement feature and test * [PTL-7537] Update feature to post the the room requiring a username flag to be used * [PTL-7537] update tests with username * update test to remove changes to the test helper struct * use the basic team and user
117 lines
3.5 KiB
Go
117 lines
3.5 KiB
Go
// 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 TestMoveChannel(t *testing.T) {
|
|
th := api.Setup().InitBasic()
|
|
defer th.TearDown()
|
|
|
|
client := th.BasicClient
|
|
team1 := th.BasicTeam
|
|
team2 := th.CreateTeam(client)
|
|
user1 := th.BasicUser
|
|
th.LinkUserToTeam(user1, team2)
|
|
channel := th.BasicChannel
|
|
|
|
th.LinkUserToTeam(user1, team1)
|
|
th.LinkUserToTeam(user1, team2)
|
|
|
|
adminEmail := user1.Email
|
|
adminUsername := user1.Username
|
|
origin := team1.Name + ":" + channel.Name
|
|
dest := team2.Name
|
|
|
|
checkCommand(t, "channel", "add", origin, adminEmail)
|
|
|
|
// should fail with nill because errors are logged instead of returned when a channel does not exist
|
|
require.Nil(t, runCommand(t, "channel", "move", dest, team1.Name+":doesnotexist", "--username", adminUsername))
|
|
|
|
checkCommand(t, "channel", "move", dest, origin, "--username", adminUsername)
|
|
}
|
|
|
|
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)
|
|
}
|