func TestAllTeamListing(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "a" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN o1.AllowTeamListing = true Must(store.Team().Save(&o1)) o2 := model.Team{} o2.DisplayName = "DisplayName" o2.Name = "a" + model.NewId() + "b" o2.Email = model.NewId() + "@nowhere.com" o2.Type = model.TEAM_OPEN Must(store.Team().Save(&o2)) if r1 := <-store.Team().GetAllTeamListing(); r1.Err != nil { t.Fatal(r1.Err) } else { teams := r1.Data.([]*model.Team) if len(teams) == 0 { t.Fatal("failed team listing") } } }
func TestTeamStoreUpdate(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "a" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN if err := (<-store.Team().Save(&o1)).Err; err != nil { t.Fatal(err) } time.Sleep(100 * time.Millisecond) if err := (<-store.Team().Update(&o1)).Err; err != nil { t.Fatal(err) } o1.Id = "missing" if err := (<-store.Team().Update(&o1)).Err; err == nil { t.Fatal("Update should have failed because of missing key") } o1.Id = model.NewId() if err := (<-store.Team().Update(&o1)).Err; err == nil { t.Fatal("Update should have faile because id change") } }
func TestTeamStoreGetByName(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "a" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN if err := (<-store.Team().Save(&o1)).Err; err != nil { t.Fatal(err) } if r1 := <-store.Team().GetByName(o1.Name); r1.Err != nil { t.Fatal(r1.Err) } else { if r1.Data.(*model.Team).ToJson() != o1.ToJson() { t.Fatal("invalid returned team") } } if err := (<-store.Team().GetByName("")).Err; err == nil { t.Fatal("Missing id should have failed") } }
func TestTeamStoreGetForEmail(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "a" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN Must(store.Team().Save(&o1)) u1 := model.User{} u1.TeamId = o1.Id u1.Email = model.NewId() Must(store.User().Save(&u1)) if r1 := <-store.Team().GetTeamsForEmail(u1.Email); r1.Err != nil { t.Fatal(r1.Err) } else { teams := r1.Data.([]*model.Team) if teams[0].Id != o1.Id { t.Fatal("failed to lookup by email") } } if r1 := <-store.Team().GetTeamsForEmail("missing"); r1.Err != nil { t.Fatal(r1.Err) } }
func TestTeamStoreGetByIniviteId(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "z-z-z" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN o1.InviteId = model.NewId() if err := (<-store.Team().Save(&o1)).Err; err != nil { t.Fatal(err) } o2 := model.Team{} o2.DisplayName = "DisplayName" o2.Name = "a" + model.NewId() + "b" o2.Email = model.NewId() + "@nowhere.com" o2.Type = model.TEAM_OPEN if err := (<-store.Team().Save(&o2)).Err; err != nil { t.Fatal(err) } if r1 := <-store.Team().GetByInviteId(o1.InviteId); r1.Err != nil { t.Fatal(r1.Err) } else { if r1.Data.(*model.Team).ToJson() != o1.ToJson() { t.Fatal("invalid returned team") } } o2.InviteId = "" <-store.Team().Update(&o2) if r1 := <-store.Team().GetByInviteId(o2.Id); r1.Err != nil { t.Fatal(r1.Err) } else { if r1.Data.(*model.Team).Id != o2.Id { t.Fatal("invalid returned team") } } if err := (<-store.Team().GetByInviteId("")).Err; err == nil { t.Fatal("Missing id should have failed") } }
func TestDelete(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "z-z-z" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN o1.AllowOpenInvite = true Must(store.Team().Save(&o1)) o2 := model.Team{} o2.DisplayName = "DisplayName" o2.Name = "a" + model.NewId() + "b" o2.Email = model.NewId() + "@nowhere.com" o2.Type = model.TEAM_OPEN Must(store.Team().Save(&o2)) if r1 := <-store.Team().PermanentDelete(o1.Id); r1.Err != nil { t.Fatal(r1.Err) } }
func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("updateTeam", "team") return } team.Id = c.TeamId if !HasPermissionToTeamContext(c, team.Id, model.PERMISSION_MANAGE_TEAM) { c.Err = model.NewLocAppError("updateTeam", "api.team.update_team.permissions.app_error", nil, "userId="+c.Session.UserId) c.Err.StatusCode = http.StatusForbidden return } var oldTeam *model.Team if result := <-Srv.Store.Team().Get(team.Id); result.Err != nil { c.Err = result.Err return } else { oldTeam = result.Data.(*model.Team) } oldTeam.DisplayName = team.DisplayName oldTeam.Description = team.Description oldTeam.InviteId = team.InviteId oldTeam.AllowOpenInvite = team.AllowOpenInvite oldTeam.CompanyName = team.CompanyName oldTeam.AllowedDomains = team.AllowedDomains //oldTeam.Type = team.Type if result := <-Srv.Store.Team().Update(oldTeam); result.Err != nil { c.Err = result.Err return } oldTeam.Sanitize() message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_UPDATE_TEAM, "", "", "", nil) message.Add("team", oldTeam.ToJson()) go Publish(message) w.Write([]byte(oldTeam.ToJson())) }
func TestChannelStoreGetMembersForUser(t *testing.T) { Setup() t1 := model.Team{} t1.DisplayName = "Name" t1.Name = model.NewId() t1.Email = model.NewId() + "@nowhere.com" t1.Type = model.TEAM_OPEN Must(store.Team().Save(&t1)) o1 := model.Channel{} o1.TeamId = t1.Id o1.DisplayName = "Channel1" o1.Name = "a" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN Must(store.Channel().Save(&o1)) o2 := model.Channel{} o2.TeamId = o1.TeamId o2.DisplayName = "Channel2" o2.Name = "a" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN Must(store.Channel().Save(&o2)) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() Must(store.Channel().SaveMember(&m1)) m2 := model.ChannelMember{} m2.ChannelId = o2.Id m2.UserId = m1.UserId m2.NotifyProps = model.GetDefaultChannelNotifyProps() Must(store.Channel().SaveMember(&m2)) cresult := <-store.Channel().GetMembersForUser(o1.TeamId, m1.UserId) members := cresult.Data.(*model.ChannelMembers) // no unread messages if len(*members) != 2 { t.Fatal("wrong number of members") } }
func TestTeamCount(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "z-z-z" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN o1.AllowOpenInvite = true Must(store.Team().Save(&o1)) if r1 := <-store.Team().AnalyticsTeamCount(); r1.Err != nil { t.Fatal(r1.Err) } else { if r1.Data.(int64) == 0 { t.Fatal("should be at least 1 team") } } }
func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { team := model.TeamFromJson(r.Body) if team == nil { c.SetInvalidParam("updateTeam", "team") return } team.Id = c.Session.TeamId if !c.IsTeamAdmin() { c.Err = model.NewAppError("updateTeam", "You do not have the appropriate permissions", "userId="+c.Session.UserId) c.Err.StatusCode = http.StatusForbidden return } var oldTeam *model.Team if result := <-Srv.Store.Team().Get(team.Id); result.Err != nil { c.Err = result.Err return } else { oldTeam = result.Data.(*model.Team) } oldTeam.DisplayName = team.DisplayName oldTeam.InviteId = team.InviteId oldTeam.AllowOpenInvite = team.AllowOpenInvite oldTeam.AllowTeamListing = team.AllowTeamListing oldTeam.CompanyName = team.CompanyName oldTeam.AllowedDomains = team.AllowedDomains //oldTeam.Type = team.Type if result := <-Srv.Store.Team().Update(oldTeam); result.Err != nil { c.Err = result.Err return } oldTeam.Sanitize() w.Write([]byte(oldTeam.ToJson())) }
func TestTeamStoreSave(t *testing.T) { Setup() o1 := model.Team{} o1.DisplayName = "DisplayName" o1.Name = "a" + model.NewId() + "b" o1.Email = model.NewId() + "@nowhere.com" o1.Type = model.TEAM_OPEN if err := (<-store.Team().Save(&o1)).Err; err != nil { t.Fatal("couldn't save item", err) } if err := (<-store.Team().Save(&o1)).Err; err == nil { t.Fatal("shouldn't be able to update from save") } o1.Id = "" if err := (<-store.Team().Save(&o1)).Err; err == nil { t.Fatal("should be unique domain") } }