diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-01 21:03:39 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-01 21:03:39 -0600 |
| commit | 7f6dddcde0ebab4c8245cbddad8105016a2fba73 (patch) | |
| tree | 133dddf44c755678b8581eae98a7ba54c7ad208d /pkg/rpc/server_test.go | |
| parent | 0a407b39cd3fa81d50ab9cba67a8b307263012f4 (diff) | |
test: start an RPC server and run a smoke test
Diffstat (limited to 'pkg/rpc/server_test.go')
| -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) }) } |
