From 3be1d71f1ff1e1ed87e1c9a3896253fa4cdd6df3 Mon Sep 17 00:00:00 2001 From: Leonard Gram Date: Mon, 11 Mar 2019 11:12:52 +0100 Subject: [PATCH] teams: test refactorings. --- pkg/services/teams/team.go | 1 - pkg/services/teams/teams_test.go | 133 ++++++++++++------------------- 2 files changed, 52 insertions(+), 82 deletions(-) diff --git a/pkg/services/teams/team.go b/pkg/services/teams/team.go index 6adf03b8b21..ae9327699be 100644 --- a/pkg/services/teams/team.go +++ b/pkg/services/teams/team.go @@ -23,7 +23,6 @@ func canUpdateTeam(orgId int64, teamId int64, user *m.SignedInUser) error { } if err := bus.Dispatch(&cmd); err != nil { - // TODO: look into how we want to do logging return err } diff --git a/pkg/services/teams/teams_test.go b/pkg/services/teams/teams_test.go index 12b773568c7..1282eefc611 100644 --- a/pkg/services/teams/teams_test.go +++ b/pkg/services/teams/teams_test.go @@ -11,57 +11,43 @@ import ( func TestUpdateTeam(t *testing.T) { Convey("Updating a team", t, func() { bus.ClearBusHandlers() + + admin := m.SignedInUser{ + UserId: 1, + OrgId: 1, + OrgRole: m.ROLE_ADMIN, + } + editor := m.SignedInUser{ + UserId: 2, + OrgId: 1, + OrgRole: m.ROLE_EDITOR, + } + testTeam := m.Team{ + Id: 1, + OrgId: 1, + } + + updateTeamCmd := m.UpdateTeamCommand{ + Id: testTeam.Id, + OrgId: testTeam.OrgId, + } + Convey("Given an editor and a team he isn't a member of", func() { - editor := m.SignedInUser{ - UserId: 1, - OrgId: 1, - OrgRole: m.ROLE_EDITOR, - } - Convey("Should not be able to update the team", func() { - cmd := m.UpdateTeamCommand{ - Id: 1, - OrgId: editor.OrgId, - } - - bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { - return errors.New("Editor not allowed to update team.") - }) + shouldNotUpdateTeam() bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error { cmd.Result = []*m.TeamMemberDTO{} return nil }) - err := UpdateTeam(&editor, &cmd) - + err := UpdateTeam(&editor, &updateTeamCmd) So(err, ShouldEqual, m.ErrNotAllowedToUpdateTeam) }) }) Convey("Given an editor and a team he is a member of", func() { - editor := m.SignedInUser{ - UserId: 1, - OrgId: 1, - OrgRole: m.ROLE_EDITOR, - } - - testTeam := m.Team{ - Id: 1, - OrgId: 1, - } - Convey("Should be able to update the team", func() { - cmd := m.UpdateTeamCommand{ - Id: testTeam.Id, - OrgId: testTeam.OrgId, - } - - teamUpdated := false - - bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { - teamUpdated = true - return nil - }) + teamUpdatedCallback := updateTeamCalled() bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error { cmd.Result = []*m.TeamMemberDTO{{ @@ -73,38 +59,29 @@ func TestUpdateTeam(t *testing.T) { return nil }) - err := UpdateTeam(&editor, &cmd) - - So(teamUpdated, ShouldBeTrue) + err := UpdateTeam(&editor, &updateTeamCmd) + So(teamUpdatedCallback(), ShouldBeTrue) So(err, ShouldBeNil) }) }) Convey("Given an editor and a team in another org", func() { - editor := m.SignedInUser{ - UserId: 1, - OrgId: 1, - OrgRole: m.ROLE_EDITOR, - } - - testTeam := m.Team{ + testTeamOtherOrg := m.Team{ Id: 1, OrgId: 2, } Convey("Shouldn't be able to update the team", func() { cmd := m.UpdateTeamCommand{ - Id: testTeam.Id, - OrgId: testTeam.OrgId, + Id: testTeamOtherOrg.Id, + OrgId: testTeamOtherOrg.OrgId, } - bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { - return errors.New("Can't update a team in a different org.") - }) + shouldNotUpdateTeam() bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error { cmd.Result = []*m.TeamMemberDTO{{ - OrgId: testTeam.OrgId, - TeamId: testTeam.Id, + OrgId: testTeamOtherOrg.OrgId, + TeamId: testTeamOtherOrg.Id, UserId: editor.UserId, Permission: int64(m.PERMISSION_ADMIN), }} @@ -112,41 +89,35 @@ func TestUpdateTeam(t *testing.T) { }) err := UpdateTeam(&editor, &cmd) - So(err, ShouldEqual, m.ErrNotAllowedToUpdateTeamInDifferentOrg) }) }) Convey("Given an org admin and a team", func() { - editor := m.SignedInUser{ - UserId: 1, - OrgId: 1, - OrgRole: m.ROLE_ADMIN, - } - - testTeam := m.Team{ - Id: 1, - OrgId: 1, - } - Convey("Should be able to update the team", func() { - cmd := m.UpdateTeamCommand{ - Id: testTeam.Id, - OrgId: testTeam.OrgId, - } + teamUpdatedCallback := updateTeamCalled() + err := UpdateTeam(&admin, &updateTeamCmd) - teamUpdated := false - - bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { - teamUpdated = true - return nil - }) - - err := UpdateTeam(&editor, &cmd) - - So(teamUpdated, ShouldBeTrue) + So(teamUpdatedCallback(), ShouldBeTrue) So(err, ShouldBeNil) }) }) }) } + +func updateTeamCalled() func() bool { + wasCalled := false + bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { + wasCalled = true + return nil + }) + + return func() bool { return wasCalled } +} + +func shouldNotUpdateTeam() { + bus.AddHandler("test", func(cmd *m.UpdateTeamCommand) error { + return errors.New("UpdateTeamCommand not expected.") + }) + +}