mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* Added password requirements * added tweaks * fixed error code * removed http.StatusNotAcceptable
583 lines
18 KiB
Go
583 lines
18 KiB
Go
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/mattermost/platform/model"
|
|
"github.com/mattermost/platform/store"
|
|
"github.com/mattermost/platform/utils"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestSignupTeam(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
_, err := Client.SignupTeam("test@nowhere.com", "name")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestCreateFromSignupTeam(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
props := make(map[string]string)
|
|
props["email"] = strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com"
|
|
props["name"] = "Test Company name"
|
|
props["time"] = fmt.Sprintf("%v", model.GetMillis())
|
|
|
|
data := model.MapToJson(props)
|
|
hash := model.HashPassword(fmt.Sprintf("%v:%v", data, utils.Cfg.EmailSettings.InviteSalt))
|
|
|
|
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
user := model.User{Email: props["email"], Nickname: "Corey Hulen", Password: "hello1"}
|
|
|
|
ts := model.TeamSignup{Team: team, User: user, Invites: []string{"success+test@simulator.amazonses.com"}, Data: data, Hash: hash}
|
|
|
|
rts, err := Client.CreateTeamFromSignup(&ts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if rts.Data.(*model.TeamSignup).Team.DisplayName != team.DisplayName {
|
|
t.Fatal("full name didn't match")
|
|
}
|
|
|
|
ruser := rts.Data.(*model.TeamSignup).User
|
|
rteam := rts.Data.(*model.TeamSignup).Team
|
|
Client.SetTeamId(rteam.Id)
|
|
|
|
if result, err := Client.LoginById(ruser.Id, user.Password); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
if result.Data.(*model.User).Email != user.Email {
|
|
t.Fatal("email's didn't match")
|
|
}
|
|
}
|
|
|
|
c1 := Client.Must(Client.GetChannels("")).Data.(*model.ChannelList)
|
|
if len(c1.Channels) != 2 {
|
|
t.Fatal("default channels not created")
|
|
}
|
|
|
|
ts.Data = "garbage"
|
|
_, err = Client.CreateTeamFromSignup(&ts)
|
|
if err == nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestCreateTeam(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
rteam, err := Client.CreateTeam(&team)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
|
|
LinkUserToTeam(user, rteam.Data.(*model.Team))
|
|
store.Must(Srv.Store.User().VerifyEmail(user.Id))
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(rteam.Data.(*model.Team).Id)
|
|
|
|
c1 := Client.Must(Client.GetChannels("")).Data.(*model.ChannelList)
|
|
if len(c1.Channels) != 2 {
|
|
t.Fatal("default channels not created")
|
|
}
|
|
|
|
if rteam.Data.(*model.Team).DisplayName != team.DisplayName {
|
|
t.Fatal("full name didn't match")
|
|
}
|
|
|
|
if _, err := Client.CreateTeam(rteam.Data.(*model.Team)); err == nil {
|
|
t.Fatal("Cannot create an existing")
|
|
}
|
|
|
|
rteam.Data.(*model.Team).Id = ""
|
|
if _, err := Client.CreateTeam(rteam.Data.(*model.Team)); err != nil {
|
|
if err.Message != "A team with that domain already exists" {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
if _, err := Client.DoApiPost("/teams/create", "garbage"); err == nil {
|
|
t.Fatal("should have been an error")
|
|
}
|
|
}
|
|
|
|
func TestAddUserToTeam(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
props := make(map[string]string)
|
|
props["email"] = strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com"
|
|
props["name"] = "Test Company name"
|
|
props["time"] = fmt.Sprintf("%v", model.GetMillis())
|
|
|
|
data := model.MapToJson(props)
|
|
hash := model.HashPassword(fmt.Sprintf("%v:%v", data, utils.Cfg.EmailSettings.InviteSalt))
|
|
|
|
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: props["email"], Type: model.TEAM_OPEN}
|
|
user := model.User{Email: props["email"], Nickname: "Corey Hulen", Password: "hello1"}
|
|
|
|
ts := model.TeamSignup{Team: team, User: user, Invites: []string{"success+test@simulator.amazonses.com"}, Data: data, Hash: hash}
|
|
|
|
rts, err := Client.CreateTeamFromSignup(&ts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if rts.Data.(*model.TeamSignup).Team.DisplayName != team.DisplayName {
|
|
t.Fatal("full name didn't match")
|
|
}
|
|
|
|
ruser := rts.Data.(*model.TeamSignup).User
|
|
rteam := rts.Data.(*model.TeamSignup).Team
|
|
Client.SetTeamId(rteam.Id)
|
|
|
|
if result, err := Client.LoginById(ruser.Id, user.Password); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
if result.Data.(*model.User).Email != user.Email {
|
|
t.Fatal("email's didn't match")
|
|
}
|
|
}
|
|
|
|
user2 := th.CreateUser(th.BasicClient)
|
|
if result, err := th.BasicClient.AddUserToTeam("", user2.Id); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
rm := result.Data.(map[string]string)
|
|
if rm["user_id"] != user2.Id {
|
|
t.Fatal("email's didn't match")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestRemoveUserFromTeam(t *testing.T) {
|
|
th := Setup().InitSystemAdmin().InitBasic()
|
|
|
|
if _, err := th.BasicClient.RemoveUserFromTeam(th.SystemAdminTeam.Id, th.SystemAdminUser.Id); err == nil {
|
|
t.Fatal("should fail not enough permissions")
|
|
} else {
|
|
if err.Id != "api.context.permissions.app_error" {
|
|
t.Fatal("wrong error")
|
|
}
|
|
}
|
|
|
|
if _, err := th.BasicClient.RemoveUserFromTeam("", th.SystemAdminUser.Id); err == nil {
|
|
t.Fatal("should fail not enough permissions")
|
|
} else {
|
|
if err.Id != "api.team.update_team.permissions.app_error" {
|
|
t.Fatal("wrong error")
|
|
}
|
|
}
|
|
|
|
if _, err := th.BasicClient.RemoveUserFromTeam("", th.BasicUser.Id); err != nil {
|
|
t.Fatal("should have removed the user from the team")
|
|
}
|
|
|
|
th.BasicClient.Logout()
|
|
th.LoginSystemAdmin()
|
|
|
|
th.SystemAdminClient.Must(th.SystemAdminClient.AddUserToTeam(th.BasicTeam.Id, th.BasicUser.Id))
|
|
|
|
if _, err := th.SystemAdminClient.RemoveUserFromTeam(th.BasicTeam.Id, th.BasicUser.Id); err != nil {
|
|
t.Fatal("should have removed the user from the team")
|
|
}
|
|
}
|
|
|
|
func TestAddUserToTeamFromInvite(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
props := make(map[string]string)
|
|
props["email"] = strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com"
|
|
props["name"] = "Test Company name"
|
|
props["time"] = fmt.Sprintf("%v", model.GetMillis())
|
|
|
|
data := model.MapToJson(props)
|
|
hash := model.HashPassword(fmt.Sprintf("%v:%v", data, utils.Cfg.EmailSettings.InviteSalt))
|
|
|
|
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: props["email"], Type: model.TEAM_OPEN}
|
|
user := model.User{Email: props["email"], Nickname: "Corey Hulen", Password: "hello1"}
|
|
|
|
ts := model.TeamSignup{Team: team, User: user, Invites: []string{"success+test@simulator.amazonses.com"}, Data: data, Hash: hash}
|
|
|
|
rts, err := Client.CreateTeamFromSignup(&ts)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if rts.Data.(*model.TeamSignup).Team.DisplayName != team.DisplayName {
|
|
t.Fatal("full name didn't match")
|
|
}
|
|
|
|
ruser := rts.Data.(*model.TeamSignup).User
|
|
rteam := rts.Data.(*model.TeamSignup).Team
|
|
Client.SetTeamId(rteam.Id)
|
|
|
|
if result, err := Client.LoginById(ruser.Id, user.Password); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
if result.Data.(*model.User).Email != user.Email {
|
|
t.Fatal("email's didn't match")
|
|
}
|
|
}
|
|
|
|
user2 := th.CreateUser(th.BasicClient)
|
|
Client.Must(Client.Logout())
|
|
Client.Must(Client.Login(user2.Email, user2.Password))
|
|
|
|
if result, err := th.BasicClient.AddUserToTeamFromInvite("", "", rteam.InviteId); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
rtm := result.Data.(*model.Team)
|
|
if rtm.Id != rteam.Id {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetAllTeams(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team)
|
|
|
|
user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
|
|
LinkUserToTeam(user, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user.Id))
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if r1, err := Client.GetAllTeams(); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
teams := r1.Data.(map[string]*model.Team)
|
|
if teams[team.Id].Name != team.Name {
|
|
t.Fatal()
|
|
}
|
|
if teams[team.Id].Email != "" {
|
|
t.Fatal("Non admin users shoudn't get full listings")
|
|
}
|
|
}
|
|
|
|
c := &Context{}
|
|
c.RequestId = model.NewId()
|
|
c.IpAddress = "cmd_line"
|
|
UpdateUserRoles(c, user, model.ROLE_SYSTEM_ADMIN)
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if r1, err := Client.GetAllTeams(); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
teams := r1.Data.(map[string]*model.Team)
|
|
if teams[team.Id].Name != team.Name {
|
|
t.Fatal()
|
|
}
|
|
if teams[team.Id].Email != team.Email {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetAllTeamListings(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN, AllowOpenInvite: true}
|
|
team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team)
|
|
|
|
user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
|
|
LinkUserToTeam(user, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user.Id))
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if r1, err := Client.GetAllTeamListings(); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
teams := r1.Data.(map[string]*model.Team)
|
|
if teams[team.Id].Name != team.Name {
|
|
t.Fatal()
|
|
}
|
|
if teams[team.Id].Email != "" {
|
|
t.Fatal("Non admin users shoudn't get full listings")
|
|
}
|
|
}
|
|
|
|
c := &Context{}
|
|
c.RequestId = model.NewId()
|
|
c.IpAddress = "cmd_line"
|
|
UpdateUserRoles(c, user, model.ROLE_SYSTEM_ADMIN)
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if r1, err := Client.GetAllTeams(); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
teams := r1.Data.(map[string]*model.Team)
|
|
if teams[team.Id].Name != team.Name {
|
|
t.Fatal()
|
|
}
|
|
if teams[team.Id].Email != team.Email {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestTeamPermDelete(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team)
|
|
|
|
user1 := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User)
|
|
LinkUserToTeam(user1, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user1.Id))
|
|
|
|
Client.Login(user1.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
channel1 := &model.Channel{DisplayName: "TestGetPosts", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id}
|
|
channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel)
|
|
|
|
post1 := &model.Post{ChannelId: channel1.Id, Message: "search for post1"}
|
|
post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post)
|
|
|
|
post2 := &model.Post{ChannelId: channel1.Id, Message: "search for post2"}
|
|
post2 = Client.Must(Client.CreatePost(post2)).Data.(*model.Post)
|
|
|
|
post3 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag search for post3"}
|
|
post3 = Client.Must(Client.CreatePost(post3)).Data.(*model.Post)
|
|
|
|
post4 := &model.Post{ChannelId: channel1.Id, Message: "hashtag for post4"}
|
|
post4 = Client.Must(Client.CreatePost(post4)).Data.(*model.Post)
|
|
|
|
c := &Context{}
|
|
c.RequestId = model.NewId()
|
|
c.IpAddress = "test"
|
|
|
|
err := PermanentDeleteTeam(c, team)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
Client.ClearOAuthToken()
|
|
}
|
|
|
|
func TestInviteMembers(t *testing.T) {
|
|
th := Setup().InitBasic().InitSystemAdmin()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
SystemAdminClient := th.SystemAdminClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team)
|
|
|
|
user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
|
|
LinkUserToTeam(user, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user.Id))
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
invite := make(map[string]string)
|
|
invite["email"] = "success+" + model.NewId() + "@simulator.amazonses.com"
|
|
invite["first_name"] = "Test"
|
|
invite["last_name"] = "Guy"
|
|
invites := &model.Invites{Invites: []map[string]string{invite}}
|
|
invites.Invites = append(invites.Invites, invite)
|
|
|
|
if _, err := Client.InviteMembers(invites); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
invites2 := &model.Invites{Invites: []map[string]string{}}
|
|
if _, err := Client.InviteMembers(invites2); err == nil {
|
|
t.Fatal("Should have errored out on no invites to send")
|
|
}
|
|
|
|
restrictTeamInvite := *utils.Cfg.TeamSettings.RestrictTeamInvite
|
|
defer func() {
|
|
*utils.Cfg.TeamSettings.RestrictTeamInvite = restrictTeamInvite
|
|
}()
|
|
*utils.Cfg.TeamSettings.RestrictTeamInvite = model.PERMISSIONS_TEAM_ADMIN
|
|
|
|
th.LoginBasic2()
|
|
LinkUserToTeam(th.BasicUser2, team)
|
|
|
|
if _, err := Client.InviteMembers(invites); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
isLicensed := utils.IsLicensed
|
|
defer func() {
|
|
utils.IsLicensed = isLicensed
|
|
}()
|
|
utils.IsLicensed = true
|
|
|
|
if _, err := Client.InviteMembers(invites); err == nil {
|
|
t.Fatal("should have errored not team admin and licensed")
|
|
}
|
|
|
|
UpdateUserToTeamAdmin(th.BasicUser2, team)
|
|
Client.Logout()
|
|
th.LoginBasic2()
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if _, err := Client.InviteMembers(invites); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
*utils.Cfg.TeamSettings.RestrictTeamInvite = model.PERMISSIONS_SYSTEM_ADMIN
|
|
|
|
if _, err := Client.InviteMembers(invites); err == nil {
|
|
t.Fatal("should have errored not system admin and licensed")
|
|
}
|
|
|
|
LinkUserToTeam(th.SystemAdminUser, team)
|
|
|
|
if _, err := SystemAdminClient.InviteMembers(invites); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestUpdateTeamDisplayName(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN}
|
|
team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team)
|
|
|
|
user := &model.User{Email: team.Email, Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
|
|
LinkUserToTeam(user, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user.Id))
|
|
|
|
user2 := &model.User{Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User)
|
|
LinkUserToTeam(user2, team)
|
|
store.Must(Srv.Store.User().VerifyEmail(user2.Id))
|
|
|
|
Client.Login(user2.Email, "passwd1")
|
|
Client.SetTeamId(team.Id)
|
|
|
|
vteam := &model.Team{DisplayName: team.DisplayName, Name: team.Name, Email: team.Email, Type: team.Type}
|
|
vteam.DisplayName = "NewName"
|
|
if _, err := Client.UpdateTeam(vteam); err == nil {
|
|
t.Fatal("Should have errored, not admin")
|
|
}
|
|
|
|
Client.Login(user.Email, "passwd1")
|
|
|
|
vteam.DisplayName = ""
|
|
if _, err := Client.UpdateTeam(vteam); err == nil {
|
|
t.Fatal("Should have errored, empty name")
|
|
}
|
|
|
|
vteam.DisplayName = "NewName"
|
|
if _, err := Client.UpdateTeam(vteam); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestFuzzyTeamCreate(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
for i := 0; i < len(utils.FUZZY_STRINGS_NAMES) || i < len(utils.FUZZY_STRINGS_EMAILS); i++ {
|
|
testDisplayName := "Name"
|
|
testEmail := "test@nowhere.com"
|
|
|
|
if i < len(utils.FUZZY_STRINGS_NAMES) {
|
|
testDisplayName = utils.FUZZY_STRINGS_NAMES[i]
|
|
}
|
|
if i < len(utils.FUZZY_STRINGS_EMAILS) {
|
|
testEmail = utils.FUZZY_STRINGS_EMAILS[i]
|
|
}
|
|
|
|
team := model.Team{DisplayName: testDisplayName, Name: "z-z-" + model.NewId() + "a", Email: testEmail, Type: model.TEAM_OPEN}
|
|
|
|
_, err := Client.CreateTeam(&team)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetMyTeam(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
th.BasicClient.Logout()
|
|
Client := th.BasicClient
|
|
|
|
team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
|
|
rteam, _ := Client.CreateTeam(team)
|
|
team = rteam.Data.(*model.Team)
|
|
|
|
user := model.User{Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
|
ruser, _ := Client.CreateUser(&user, "")
|
|
LinkUserToTeam(ruser.Data.(*model.User), rteam.Data.(*model.Team))
|
|
store.Must(Srv.Store.User().VerifyEmail(ruser.Data.(*model.User).Id))
|
|
|
|
Client.Login(user.Email, user.Password)
|
|
Client.SetTeamId(team.Id)
|
|
|
|
if result, err := Client.GetMyTeam(""); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
if result.Data.(*model.Team).DisplayName != team.DisplayName {
|
|
t.Fatal("team names did not match")
|
|
}
|
|
if result.Data.(*model.Team).Name != team.Name {
|
|
t.Fatal("team domains did not match")
|
|
}
|
|
if result.Data.(*model.Team).Type != team.Type {
|
|
t.Fatal("team types did not match")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetTeamMembers(t *testing.T) {
|
|
th := Setup().InitBasic()
|
|
|
|
if result, err := th.BasicClient.GetTeamMembers(th.BasicTeam.Id); err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
members := result.Data.([]*model.TeamMember)
|
|
t.Log(members)
|
|
}
|
|
}
|