| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package teamguardian
- import (
- "github.com/grafana/grafana/pkg/bus"
- m "github.com/grafana/grafana/pkg/models"
- . "github.com/smartystreets/goconvey/convey"
- "testing"
- )
- 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,
- }
- Convey("Given an editor and a team he isn't a member of", func() {
- Convey("Should not be able to update the team", func() {
- bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error {
- cmd.Result = []*m.TeamMemberDTO{}
- return nil
- })
- err := CanAdmin(bus.GetBus(), testTeam.OrgId, testTeam.Id, &editor)
- So(err, ShouldEqual, m.ErrNotAllowedToUpdateTeam)
- })
- })
- Convey("Given an editor and a team he is an admin in", func() {
- Convey("Should be able to update the team", func() {
- bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error {
- cmd.Result = []*m.TeamMemberDTO{{
- OrgId: testTeam.OrgId,
- TeamId: testTeam.Id,
- UserId: editor.UserId,
- Permission: m.PERMISSION_ADMIN,
- }}
- return nil
- })
- err := CanAdmin(bus.GetBus(), testTeam.OrgId, testTeam.Id, &editor)
- So(err, ShouldBeNil)
- })
- })
- Convey("Given an editor and a team in another org", func() {
- testTeamOtherOrg := m.Team{
- Id: 1,
- OrgId: 2,
- }
- Convey("Shouldn't be able to update the team", func() {
- bus.AddHandler("test", func(cmd *m.GetTeamMembersQuery) error {
- cmd.Result = []*m.TeamMemberDTO{{
- OrgId: testTeamOtherOrg.OrgId,
- TeamId: testTeamOtherOrg.Id,
- UserId: editor.UserId,
- Permission: m.PERMISSION_ADMIN,
- }}
- return nil
- })
- err := CanAdmin(bus.GetBus(), testTeamOtherOrg.OrgId, testTeamOtherOrg.Id, &editor)
- So(err, ShouldEqual, m.ErrNotAllowedToUpdateTeamInDifferentOrg)
- })
- })
- Convey("Given an org admin and a team", func() {
- Convey("Should be able to update the team", func() {
- err := CanAdmin(bus.GetBus(), testTeam.OrgId, testTeam.Id, &admin)
- So(err, ShouldBeNil)
- })
- })
- })
- }
|