gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/controller/revoke_roles_test.go (about) 1 package controller_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/google/uuid" 8 "github.com/stretchr/testify/require" 9 "google.golang.org/grpc/codes" 10 "google.golang.org/grpc/status" 11 12 v1 "gitlab.com/picnic-app/backend/libs/golang/protobuf-registry/gen/role-api/role/v1" 13 ) 14 15 func TestController_RevokeRoles_Validation(t *testing.T) { 16 t.Parallel() 17 18 container := initContainer(t) 19 20 for _, test := range []struct { 21 name string 22 ctx context.Context 23 req *v1.RevokeRolesRequest 24 want codes.Code 25 }{ 26 { 27 name: "no request", 28 ctx: context.Background(), 29 req: nil, 30 want: codes.InvalidArgument, 31 }, 32 { 33 name: "no entity id", 34 ctx: context.Background(), 35 req: &v1.RevokeRolesRequest{}, 36 want: codes.InvalidArgument, 37 }, 38 } { 39 test := test 40 t.Run(test.name, func(t *testing.T) { 41 _, err := container.controller.RevokeRoles(test.ctx, test.req) 42 got := status.Code(err) 43 require.Equal(t, test.want, got, err) 44 }) 45 } 46 } 47 48 func TestController_RevokeRoles(t *testing.T) { 49 t.Parallel() 50 51 container := initContainer(t) 52 53 entityID := uuid.NewString() 54 circle1ID, circle2ID := uuid.NewString(), uuid.NewString() 55 userID := uuid.NewString() 56 57 _, err := setUpAssignedRole(container, entityID, circle1ID, userID) 58 require.NoError(t, err) 59 _, err = setUpAssignedRole(container, entityID, circle1ID, userID) 60 require.NoError(t, err) 61 role, err := setUpAssignedRole(container, entityID, circle2ID, userID) 62 require.NoError(t, err) 63 64 ctx := context.Background() 65 66 // revoke 67 _, err = container.controller.RevokeRoles( 68 ctx, 69 &v1.RevokeRolesRequest{ 70 EntityId: entityID, 71 CircleId: circle1ID, 72 }, 73 ) 74 require.NoError(t, err) 75 76 // get assigned roles 77 getResponse, err := container.controller.GetAssignedRoles( 78 ctx, 79 &v1.GetAssignedRolesRequest{ 80 EntityId: entityID, 81 }, 82 ) 83 require.NoError(t, err) 84 require.NotNil(t, getResponse.Roles) 85 require.Len(t, getResponse.Roles, 1) 86 require.Equal(t, getResponse.Roles[0].Id, role.Id) 87 }