summaryrefslogtreecommitdiffstats
path: root/api/team_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/team_test.go')
-rw-r--r--api/team_test.go245
1 files changed, 219 insertions, 26 deletions
diff --git a/api/team_test.go b/api/team_test.go
index bbbc8385d..161c7e620 100644
--- a/api/team_test.go
+++ b/api/team_test.go
@@ -13,7 +13,9 @@ import (
)
func TestSignupTeam(t *testing.T) {
- Setup()
+ th := Setup().InitBasic()
+ th.BasicClient.Logout()
+ Client := th.BasicClient
_, err := Client.SignupTeam("test@nowhere.com", "name")
if err != nil {
@@ -22,7 +24,9 @@ func TestSignupTeam(t *testing.T) {
}
func TestCreateFromSignupTeam(t *testing.T) {
- Setup()
+ 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"
@@ -47,6 +51,8 @@ func TestCreateFromSignupTeam(t *testing.T) {
}
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)
@@ -69,7 +75,9 @@ func TestCreateFromSignupTeam(t *testing.T) {
}
func TestCreateTeam(t *testing.T) {
- Setup()
+ 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)
@@ -77,11 +85,13 @@ func TestCreateTeam(t *testing.T) {
t.Fatal(err)
}
- user := &model.User{TeamId: rteam.Data.(*model.Team).Id, Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
+ LinkUserToTeam(user, rteam.Data.(*model.Team))
store.Must(Srv.Store.User().VerifyEmail(user.Id))
Client.LoginByEmail(team.Name, user.Email, "pwd")
+ Client.SetTeamId(rteam.Data.(*model.Team).Id)
c1 := Client.Must(Client.GetChannels("")).Data.(*model.ChannelList)
if len(c1.Channels) != 2 {
@@ -108,23 +118,144 @@ func TestCreateTeam(t *testing.T) {
}
}
+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: "hello"}
+
+ 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 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: "hello"}
+
+ 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.LoginByEmail("", 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) {
- Setup()
+ 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, AllowTeamListing: true}
+ 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{TeamId: team.Id, Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
+ LinkUserToTeam(user, team)
store.Must(Srv.Store.User().VerifyEmail(user.Id))
Client.LoginByEmail(team.Name, user.Email, "pwd")
+ 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"
+ UpdateRoles(c, user, model.ROLE_SYSTEM_ADMIN)
- enableIncomingHooks := *utils.Cfg.TeamSettings.EnableTeamListing
- defer func() {
- *utils.Cfg.TeamSettings.EnableTeamListing = enableIncomingHooks
- }()
- *utils.Cfg.TeamSettings.EnableTeamListing = true
+ Client.LoginByEmail(team.Name, user.Email, "pwd")
+ Client.SetTeamId(team.Id)
if r1, err := Client.GetAllTeams(); err != nil {
t.Fatal(err)
@@ -133,6 +264,35 @@ func TestGetAllTeams(t *testing.T) {
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: "pwd"}
+ user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
+ LinkUserToTeam(user, team)
+ store.Must(Srv.Store.User().VerifyEmail(user.Id))
+
+ Client.LoginByEmail(team.Name, user.Email, "pwd")
+ 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")
}
@@ -144,6 +304,7 @@ func TestGetAllTeams(t *testing.T) {
UpdateRoles(c, user, model.ROLE_SYSTEM_ADMIN)
Client.LoginByEmail(team.Name, user.Email, "pwd")
+ Client.SetTeamId(team.Id)
if r1, err := Client.GetAllTeams(); err != nil {
t.Fatal(err)
@@ -159,16 +320,20 @@ func TestGetAllTeams(t *testing.T) {
}
func TestTeamPermDelete(t *testing.T) {
- Setup()
+ 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{TeamId: team.Id, Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user1 := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User)
+ LinkUserToTeam(user1, team)
store.Must(Srv.Store.User().VerifyEmail(user1.Id))
Client.LoginByEmail(team.Name, user1.Email, "pwd")
+ 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)
@@ -198,19 +363,23 @@ func TestTeamPermDelete(t *testing.T) {
}
func TestInviteMembers(t *testing.T) {
- Setup()
+ 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{TeamId: team.Id, Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user := &model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
+ LinkUserToTeam(user, team)
store.Must(Srv.Store.User().VerifyEmail(user.Id))
Client.LoginByEmail(team.Name, user.Email, "pwd")
+ Client.SetTeamId(team.Id)
invite := make(map[string]string)
- invite["email"] = model.NewId() + "success+test@simulator.amazonses.com"
+ invite["email"] = "success+" + model.NewId() + "@simulator.amazonses.com"
invite["first_name"] = "Test"
invite["last_name"] = "Guy"
invites := &model.Invites{Invites: []map[string]string{invite}}
@@ -227,20 +396,25 @@ func TestInviteMembers(t *testing.T) {
}
func TestUpdateTeamDisplayName(t *testing.T) {
- Setup()
+ 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 := &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{TeamId: team.Id, Email: "test@nowhere.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user := &model.User{Email: team.Email, Nickname: "Corey Hulen", Password: "pwd"}
user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User)
+ LinkUserToTeam(user, team)
store.Must(Srv.Store.User().VerifyEmail(user.Id))
- user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user2 := &model.User{Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User)
+ LinkUserToTeam(user2, team)
store.Must(Srv.Store.User().VerifyEmail(user2.Id))
Client.LoginByEmail(team.Name, user2.Email, "pwd")
+ Client.SetTeamId(team.Id)
vteam := &model.Team{DisplayName: team.DisplayName, Name: team.Name, Email: team.Email, Type: team.Type}
vteam.DisplayName = "NewName"
@@ -262,6 +436,9 @@ func TestUpdateTeamDisplayName(t *testing.T) {
}
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"
@@ -284,19 +461,24 @@ func TestFuzzyTeamCreate(t *testing.T) {
}
func TestGetMyTeam(t *testing.T) {
- Setup()
+ 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 := &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{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
+ user := model.User{Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"}
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.LoginByEmail(team.Name, user.Email, user.Password)
+ Client.SetTeamId(team.Id)
if result, err := Client.GetMyTeam(""); err != nil {
- t.Fatal("Failed to get user")
+ t.Fatal(err)
} else {
if result.Data.(*model.Team).DisplayName != team.DisplayName {
t.Fatal("team names did not match")
@@ -309,3 +491,14 @@ func TestGetMyTeam(t *testing.T) {
}
}
}
+
+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)
+ }
+}