diff options
author | John Cai <jcai@gitlab.com> | 2019-10-25 20:33:34 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2019-10-25 20:33:34 +0300 |
commit | d47b268af2db42d7fb4e1af7252f62ba7dcc27fe (patch) | |
tree | 7a931a517a9550e3549d24b81651a8fe32690ece | |
parent | 3b700822524aded160cc7a20573d1fac1ea62ca2 (diff) |
Add auth tests to ensure auth is being exercised
-rw-r--r-- | internal/server/auth_test.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/internal/server/auth_test.go b/internal/server/auth_test.go index 462f5d80d..3ee2a340b 100644 --- a/internal/server/auth_test.go +++ b/internal/server/auth_test.go @@ -13,6 +13,8 @@ import ( "gitlab.com/gitlab-org/gitaly/internal/auth" "gitlab.com/gitlab-org/gitaly/internal/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" + "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/streamio" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" @@ -211,3 +213,66 @@ func runSecureServer(t *testing.T) (*grpc.Server, string) { return srv, "localhost:9999" } + +func TestUnaryNoAuth(t *testing.T) { + oldToken := config.Config.Auth.Token + config.Config.Auth.Token = "testtoken" + defer func() { + config.Config.Auth.Token = oldToken + }() + + srv, path := runServer(t) + defer srv.Stop() + + connOpts := []grpc.DialOption{ + grpc.WithInsecure(), + } + + conn, err := grpc.Dial(path, connOpts...) + if err != nil { + t.Fatal(err) + } + + ctx, cancel := testhelper.Context() + defer cancel() + + client := gitalypb.NewRepositoryServiceClient(conn) + _, err = client.CreateRepository(ctx, &gitalypb.CreateRepositoryRequest{Repository: &gitalypb.Repository{StorageName: "default", RelativePath: "new/project/path"}}) + + testhelper.RequireGrpcError(t, err, codes.Unauthenticated) +} + +func TestStreamingNoAuth(t *testing.T) { + oldToken := config.Config.Auth.Token + config.Config.Auth.Token = "testtoken" + defer func() { + config.Config.Auth.Token = oldToken + }() + + srv, path := runServer(t) + defer srv.Stop() + + connOpts := []grpc.DialOption{ + grpc.WithInsecure(), + } + + conn, err := grpc.Dial(path, connOpts...) + if err != nil { + t.Fatal(err) + } + + ctx, cancel := testhelper.Context() + defer cancel() + + client := gitalypb.NewRepositoryServiceClient(conn) + stream, err := client.GetInfoAttributes(ctx, &gitalypb.GetInfoAttributesRequest{Repository: &gitalypb.Repository{StorageName: "default", RelativePath: "new/project/path"}}) + + require.NoError(t, err) + + _, err = ioutil.ReadAll(streamio.NewReader(func() ([]byte, error) { + _, err = stream.Recv() + return nil, err + })) + + testhelper.RequireGrpcError(t, err, codes.Unauthenticated) +} |