Commit 7f6dddc
Changed files (1)
pkg
rpc
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)
})
}