Refactor host_repo -> domain errors (#786)
* Refactor domain errors: New -> E, create helper New and Wrap * Update host repo to use domain errors
This commit is contained in:
1 parent
aa4157639c
commit
ec0020de90
33 files changed
+996
-374
No files matched your search
@@ -100,7 +100,7 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Kind: "Internal",
|
||||
Message: "Some random error",
|
||||
},
|
||||
},
|
||||
@@ -111,22 +111,44 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Kind: "Internal",
|
||||
Message: fmt.Sprintf("test error: %s", errors.ErrInvalidPublicId),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db invalid parameter",
|
||||
err: errors.E(errors.WithCode(errors.InvalidPublicId)),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Message: "invalid public id, parameter violation: error #102",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db invalid parameter",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrInvalidParameter),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Kind: "Internal",
|
||||
Message: fmt.Sprintf("test error: %s", errors.ErrInvalidParameter),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db invalid parameter",
|
||||
err: errors.E(errors.WithCode(errors.InvalidParameter)),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Message: "invalid parameter, parameter violation: error #100",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db invalid field mask",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrInvalidFieldMask),
|
||||
@@ -139,6 +161,18 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db invalid field mask",
|
||||
err: errors.E(errors.WithCode(errors.InvalidFieldMask)),
|
||||
expected: apiError{
|
||||
status: http.StatusBadRequest,
|
||||
inner: &pb.Error{
|
||||
Kind: "InvalidArgument",
|
||||
Message: "Error in provided request",
|
||||
Details: &pb.ErrorDetails{RequestFields: []*pb.FieldError{{Name: "update_mask", Description: "Invalid update mask provided."}}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db empty field mask",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrEmptyFieldMask),
|
||||
@@ -151,6 +185,18 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db empty field mask",
|
||||
err: errors.E(errors.WithCode(errors.EmptyFieldMask)),
|
||||
expected: apiError{
|
||||
status: http.StatusBadRequest,
|
||||
inner: &pb.Error{
|
||||
Kind: "InvalidArgument",
|
||||
Message: "Error in provided request",
|
||||
Details: &pb.ErrorDetails{RequestFields: []*pb.FieldError{{Name: "update_mask", Description: "Invalid update mask provided."}}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db not unique",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrNotUnique),
|
||||
@@ -162,6 +208,17 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db not unqiue",
|
||||
err: errors.E(errors.WithCode(errors.NotUnique)),
|
||||
expected: apiError{
|
||||
status: http.StatusBadRequest,
|
||||
inner: &pb.Error{
|
||||
Kind: "InvalidArgument",
|
||||
Message: genericUniquenessMsg,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db record not found",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrRecordNotFound),
|
||||
@@ -173,17 +230,50 @@ func TestApiErrorHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db record not found",
|
||||
err: errors.E(errors.WithCode(errors.RecordNotFound)),
|
||||
expected: apiError{
|
||||
status: http.StatusNotFound,
|
||||
inner: &pb.Error{
|
||||
Kind: "NotFound",
|
||||
Message: genericNotFoundMsg,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Db multiple records",
|
||||
err: fmt.Errorf("test error: %w", errors.ErrMultipleRecords),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Kind: "Internal",
|
||||
Message: fmt.Sprintf("test error: %s", errors.ErrMultipleRecords),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Domain error Db multiple records",
|
||||
err: errors.E(errors.WithCode(errors.MultipleRecords)),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Message: "multiple records, search issue: error #1101",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Wrapped domain error",
|
||||
err: errors.E(errors.WithCode(errors.InvalidAddress), errors.WithMsg("test msg"), errors.WithWrap(errors.E(errors.WithCode(errors.NotNull), errors.WithMsg("inner msg")))),
|
||||
expected: apiError{
|
||||
status: http.StatusInternalServerError,
|
||||
inner: &pb.Error{
|
||||
Kind: "Internal",
|
||||
Message: "test msg: parameter violation: error #101: inner msg: integrity violation: error #1001",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
|
||||
Reference in new issue
Block a user