gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/controller/create_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_CreateRole_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.CreateRoleRequest 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 role", 34 ctx: context.Background(), 35 req: &v1.CreateRoleRequest{}, 36 want: codes.InvalidArgument, 37 }, 38 } { 39 test := test 40 t.Run(test.name, func(t *testing.T) { 41 _, err := container.controller.CreateRole(test.ctx, test.req) 42 got := status.Code(err) 43 require.Equal(t, test.want, got, err) 44 }) 45 } 46 } 47 48 func TestController_CreateRole(t *testing.T) { 49 t.Parallel() 50 51 container := initContainer(t) 52 53 name := uuid.NewString() 54 permissions := []*v1.Permission{ 55 { 56 Service: "Content", 57 Operation: "CreatePost", 58 Scope: "*", 59 }, 60 { 61 Service: "Chat", 62 Operation: "SendMessage", 63 Scope: "*", 64 }, 65 } 66 67 ctx := context.Background() 68 createResponse, err := container.controller.CreateRole( 69 ctx, 70 &v1.CreateRoleRequest{ 71 Role: &v1.Role{ 72 Name: name, 73 Permissions: permissions, 74 }, 75 }, 76 ) 77 require.NoError(t, err) 78 require.NotEmpty(t, createResponse.Id) 79 80 id := createResponse.Id 81 82 // get role 83 getResponse, err := container.controller.GetRole( 84 ctx, 85 &v1.GetRoleRequest{ 86 Id: id, 87 }, 88 ) 89 require.NoError(t, err) 90 require.NotNil(t, getResponse.Role) 91 92 role := getResponse.Role 93 94 require.Equal(t, id, role.Id) 95 require.Equal(t, name, role.Name) 96 require.Equal(t, permissions, role.Permissions) 97 }