summaryrefslogtreecommitdiff
path: root/pkg/rpc
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-01 21:03:39 -0600
committermo khan <mo@mokhan.ca>2025-04-01 21:03:39 -0600
commit7f6dddcde0ebab4c8245cbddad8105016a2fba73 (patch)
tree133dddf44c755678b8581eae98a7ba54c7ad208d /pkg/rpc
parent0a407b39cd3fa81d50ab9cba67a8b307263012f4 (diff)
test: start an RPC server and run a smoke test
Diffstat (limited to 'pkg/rpc')
-rw-r--r--pkg/rpc/server_test.go44
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)
})
}