Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Strokov <pstrokov@gitlab.com>2022-10-20 15:16:59 +0300
committerPavlo Strokov <pstrokov@gitlab.com>2022-11-08 12:28:56 +0300
commit2d760e20b47a4dbc0c8b7399e62bd4be83df71f3 (patch)
tree54469ef15d99c6a7a19ac513f162aa08fe2b23c3 /internal/gitaly/service/operations/submodules_test.go
parent562a9aa2ba8b416fa49e9c5db67811dfe85731d2 (diff)
service/operations: Improve validation of input
Gitaly should return the same error for all RPCs where the Repository input parameter is missing. Input validation code extracted into separate function where it makes sense. The test coverage extended to cover changed code. The error verification is done not only for the code, but for the message as well. It gives us confidence that a proper path is tested.
Diffstat (limited to 'internal/gitaly/service/operations/submodules_test.go')
-rw-r--r--internal/gitaly/service/operations/submodules_test.go29
1 files changed, 16 insertions, 13 deletions
diff --git a/internal/gitaly/service/operations/submodules_test.go b/internal/gitaly/service/operations/submodules_test.go
index e572224b5..1da25604a 100644
--- a/internal/gitaly/service/operations/submodules_test.go
+++ b/internal/gitaly/service/operations/submodules_test.go
@@ -17,6 +17,7 @@ import (
"gitlab.com/gitlab-org/gitaly/v15/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/timestamppb"
)
@@ -194,9 +195,9 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
ctx, _, repo, _, client := setupOperationsService(t, ctx)
testCases := []struct {
- desc string
- request *gitalypb.UserUpdateSubmoduleRequest
- code codes.Code
+ desc string
+ request *gitalypb.UserUpdateSubmoduleRequest
+ expectedErr error
}{
{
desc: "empty Repository",
@@ -208,7 +209,10 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, testhelper.GitalyOrPraefect(
+ "UserUpdateSubmodule: empty Repository",
+ "repo scoped: empty Repository",
+ )),
},
{
desc: "empty User",
@@ -220,7 +224,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: empty User"),
},
{
desc: "empty Submodule",
@@ -232,7 +236,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: empty Submodule"),
},
{
desc: "empty CommitSha",
@@ -244,7 +248,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: empty CommitSha"),
},
{
desc: "invalid CommitSha",
@@ -256,7 +260,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: invalid CommitSha"),
},
{
desc: "invalid CommitSha",
@@ -268,7 +272,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: invalid CommitSha"),
},
{
desc: "empty Branch",
@@ -280,7 +284,7 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: nil,
CommitMessage: []byte("Update Submodule message"),
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: empty Branch"),
},
{
desc: "empty CommitMessage",
@@ -292,15 +296,14 @@ func TestFailedUserUpdateSubmoduleRequestDueToValidations(t *testing.T) {
Branch: []byte("some-branch"),
CommitMessage: nil,
},
- code: codes.InvalidArgument,
+ expectedErr: status.Error(codes.InvalidArgument, "UserUpdateSubmodule: empty CommitMessage"),
},
}
for _, testCase := range testCases {
t.Run(testCase.desc, func(t *testing.T) {
_, err := client.UserUpdateSubmodule(ctx, testCase.request)
- testhelper.RequireGrpcCode(t, err, testCase.code)
- require.Contains(t, err.Error(), testCase.desc)
+ testhelper.RequireGrpcError(t, testCase.expectedErr, err)
})
}
}