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