gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/controller/revoke_role_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_RevokeRole_Validation(t *testing.T) { 16 t.Parallel() 17 18 container := initContainer(t) 19 20 role, err := setUpRole(container) 21 require.NoError(t, err) 22 23 for _, test := range []struct { 24 name string 25 ctx context.Context 26 req *v1.RevokeRoleRequest 27 want codes.Code 28 }{ 29 { 30 name: "no request", 31 ctx: context.Background(), 32 req: nil, 33 want: codes.InvalidArgument, 34 }, 35 { 36 name: "no entity id", 37 ctx: context.Background(), 38 req: &v1.RevokeRoleRequest{ 39 RoleId: role.Id, 40 }, 41 want: codes.InvalidArgument, 42 }, 43 { 44 name: "no role id", 45 ctx: context.Background(), 46 req: &v1.RevokeRoleRequest{ 47 EntityId: uuid.NewString(), 48 }, 49 want: codes.InvalidArgument, 50 }, 51 } { 52 test := test 53 t.Run(test.name, func(t *testing.T) { 54 _, err := container.controller.RevokeRole(test.ctx, test.req) 55 got := status.Code(err) 56 require.Equal(t, test.want, got, err) 57 }) 58 } 59 } 60 61 func TestController_RevokeRole(t *testing.T) { 62 t.Parallel() 63 64 container := initContainer(t) 65 66 entityID := uuid.NewString() 67 circleID := uuid.NewString() 68 userID := uuid.NewString() 69 role, err := setUpAssignedRole(container, entityID, circleID, userID) 70 require.NoError(t, err) 71 72 ctx := context.Background() 73 74 // revoke 75 _, err = container.controller.RevokeRole( 76 ctx, 77 &v1.RevokeRoleRequest{ 78 EntityId: entityID, 79 RoleId: role.Id, 80 }, 81 ) 82 require.NoError(t, err) 83 84 // get assigned roles 85 getResponse, err := container.controller.GetAssignedRoles( 86 ctx, 87 &v1.GetAssignedRolesRequest{ 88 EntityId: entityID, 89 CircleId: circleID, 90 UserId: userID, 91 }, 92 ) 93 require.NoError(t, err) 94 require.NotNil(t, getResponse.Roles) 95 require.Len(t, getResponse.Roles, 0) 96 }