diff options
Diffstat (limited to 'pkg/rpc')
| -rw-r--r-- | pkg/rpc/server_test.go | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/pkg/rpc/server_test.go b/pkg/rpc/server_test.go index 92b5e49..aed219e 100644 --- a/pkg/rpc/server_test.go +++ b/pkg/rpc/server_test.go @@ -5,25 +5,45 @@ import ( "net/http" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/mokhax/spike/pkg/authz" + grpc "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" ) func TestServer(t *testing.T) { - t.Run("returns a result", func(t *testing.T) { - authorizer := authz.AuthorizerFunc(func(r *http.Request) bool { - return true - }) + authorizer := authz.AuthorizerFunc(func(r *http.Request) bool { + return true + }) - listener, err := net.Listen("tcp", ":0") - require.NoError(t, err) + listener, err := net.Listen("tcp", "localhost:0") + require.NoError(t, err) + defer listener.Close() + + server := New(authorizer) + defer server.Stop() - server := New(authorizer) - defer server.Stop() - defer listener.Close() + go func() { + require.NoError(t, server.Serve(listener)) + }() - go func() { - require.NoError(t, server.Serve(listener)) - }() + connection, err := grpc.NewClient( + listener.Addr().String(), + grpc.WithTransportCredentials(insecure.NewCredentials()), + ) + require.NoError(t, err) + + defer connection.Close() + client := NewAbilityClient(connection) + + t.Run("returns a result", func(t *testing.T) { + reply, err := client.Allowed(t.Context(), &AllowRequest{ + Subject: "", + Permission: "", + Resource: "", + }) + require.NoError(t, err) + assert.True(t, reply.Result) }) } |
