diff options
Diffstat (limited to 'api4/team_test.go')
-rw-r--r-- | api4/team_test.go | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/api4/team_test.go b/api4/team_test.go index 1ace69685..4b69f5b62 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -114,6 +114,138 @@ func TestGetTeam(t *testing.T) { CheckNoError(t, resp) } +func TestGetTeamUnread(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + teamUnread, resp := Client.GetTeamUnread(th.BasicTeam.Id, th.BasicUser.Id) + CheckNoError(t, resp) + if teamUnread.TeamId != th.BasicTeam.Id { + t.Fatal("wrong team id returned for regular user call") + } + + _, resp = Client.GetTeamUnread("junk", th.BasicUser.Id) + CheckBadRequestStatus(t, resp) + + _, resp = Client.GetTeamUnread(th.BasicTeam.Id, "junk") + CheckBadRequestStatus(t, resp) + + _, resp = Client.GetTeamUnread(model.NewId(), th.BasicUser.Id) + CheckForbiddenStatus(t, resp) + + _, resp = Client.GetTeamUnread(th.BasicTeam.Id, model.NewId()) + CheckForbiddenStatus(t, resp) + + Client.Logout() + _, resp = Client.GetTeamUnread(th.BasicTeam.Id, th.BasicUser.Id) + CheckUnauthorizedStatus(t, resp) + + teamUnread, resp = th.SystemAdminClient.GetTeamUnread(th.BasicTeam.Id, th.BasicUser.Id) + CheckNoError(t, resp) + if teamUnread.TeamId != th.BasicTeam.Id { + t.Fatal("wrong team id returned") + } +} + +func TestUpdateTeam(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + team := &model.Team{DisplayName: "Name", Description: "Some description", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewId() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} + team, _ = Client.CreateTeam(team) + + team.Description = "updated description" + uteam, resp := Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.Description != "updated description" { + t.Fatal("Update failed") + } + + team.DisplayName = "Updated Name" + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.DisplayName != "Updated Name" { + t.Fatal("Update failed") + } + + team.AllowOpenInvite = true + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.AllowOpenInvite != true { + t.Fatal("Update failed") + } + + team.InviteId = "inviteid1" + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.InviteId != "inviteid1" { + t.Fatal("Update failed") + } + + team.Name = "Updated name" + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.Name == "Updated name" { + t.Fatal("Should not update name") + } + + team.Email = "test@domain.com" + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.Email == "test@domain.com" { + t.Fatal("Should not update email") + } + + team.Type = model.TEAM_INVITE + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.Type == model.TEAM_INVITE { + t.Fatal("Should not update type") + } + + team.AllowedDomains = "domain" + uteam, resp = Client.UpdateTeam(team) + CheckNoError(t, resp) + + if uteam.AllowedDomains == "domain" { + t.Fatal("Should not update allowed_domains") + } + + originalTeamId := team.Id + team.Id = model.NewId() + + if r, err := Client.DoApiPut(Client.GetTeamRoute(originalTeamId), team.ToJson()); err != nil { + t.Fatal(err) + } else { + uteam = model.TeamFromJson(r.Body) + } + + if uteam.Id != originalTeamId { + t.Fatal("wrong team id") + } + + team.Id = "fake" + _, resp = Client.UpdateTeam(team) + CheckBadRequestStatus(t, resp) + + Client.Logout() + _, resp = Client.UpdateTeam(team) + CheckUnauthorizedStatus(t, resp) + + team.Id = originalTeamId + _, resp = th.SystemAdminClient.UpdateTeam(team) + CheckNoError(t, resp) +} + func TestGetAllTeams(t *testing.T) { th := Setup().InitBasic().InitSystemAdmin() defer TearDown() @@ -332,6 +464,44 @@ func TestGetTeamMembers(t *testing.T) { CheckNoError(t, resp) } +func TestGetTeamMembersByIds(t *testing.T) { + th := Setup().InitBasic() + defer TearDown() + Client := th.Client + + tm, resp := Client.GetTeamMembersByIds(th.BasicTeam.Id, []string{th.BasicUser.Id}) + CheckNoError(t, resp) + + if tm[0].UserId != th.BasicUser.Id { + t.Fatal("returned wrong user") + } + + _, resp = Client.GetTeamMembersByIds(th.BasicTeam.Id, []string{}) + CheckBadRequestStatus(t, resp) + + tm1, resp := Client.GetTeamMembersByIds(th.BasicTeam.Id, []string{"junk"}) + CheckNoError(t, resp) + if len(tm1) > 0 { + t.Fatal("no users should be returned") + } + + tm1, resp = Client.GetTeamMembersByIds(th.BasicTeam.Id, []string{"junk", th.BasicUser.Id}) + CheckNoError(t, resp) + if len(tm1) != 1 { + t.Fatal("1 user should be returned") + } + + tm1, resp = Client.GetTeamMembersByIds("junk", []string{th.BasicUser.Id}) + CheckBadRequestStatus(t, resp) + + tm1, resp = Client.GetTeamMembersByIds(model.NewId(), []string{th.BasicUser.Id}) + CheckForbiddenStatus(t, resp) + + Client.Logout() + _, resp = Client.GetTeamMembersByIds(th.BasicTeam.Id, []string{th.BasicUser.Id}) + CheckUnauthorizedStatus(t, resp) +} + func TestGetTeamStats(t *testing.T) { th := Setup().InitBasic().InitSystemAdmin() defer TearDown() |