Skip to content

Commit

Permalink
chore: restore original assertions add in validation of metadata beha…
Browse files Browse the repository at this point in the history
…viour
  • Loading branch information
thisislawatts committed Feb 20, 2025
1 parent e020277 commit 8d4289a
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 16 deletions.
27 changes: 15 additions & 12 deletions cliv2/cmd/cliv2/errorhandling.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@ package main

import (
"errors"
"github.com/snyk/error-catalog-golang-public/cli"
"os/exec"

"github.com/snyk/error-catalog-golang-public/snyk_errors"
"github.com/snyk/go-application-framework/pkg/networking/middleware"

cli_errors "github.com/snyk/cli/cliv2/internal/errors"
"github.com/snyk/error-catalog-golang-public/cli"
"github.com/snyk/error-catalog-golang-public/snyk_errors"
)

// decorate generic errors that do not contain Error-Catalog Errors
Expand All @@ -26,15 +24,20 @@ func decorateError(err error, meta map[string]any) error {
}

var errorCatalogError snyk_errors.Error
var errWithMeta error
if errors.As(err, &errorCatalogError) {
errWithMeta = middleware.AddMetaDataToErr(errorCatalogError, meta)
} else {
genericError := cli.NewGeneralCLIFailureError(err.Error())
genericError.StatusCode = 0
errWithMeta = middleware.AddMetaDataToErr(genericError, meta)
for k, v := range meta {
snyk_errors.WithMeta(k, v)(&errorCatalogError)
}

return errorCatalogError
}

genericError := cli.NewGeneralCLIFailureError(err.Error())
genericError.StatusCode = 0

for k, v := range meta {
snyk_errors.WithMeta(k, v)(&genericError)
}

err = errors.Join(err, errWithMeta)
return err
return errors.Join(err, genericError)
}
13 changes: 12 additions & 1 deletion cliv2/cmd/cliv2/errorhandling_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"os/exec"
"testing"

"github.com/snyk/error-catalog-golang-public/snyk_errors"
"github.com/stretchr/testify/assert"

"github.com/snyk/error-catalog-golang-public/cli"
Expand All @@ -19,6 +20,16 @@ func Test_decorateError(t *testing.T) {
assert.Nil(t, decorateError(nil, meta))
})

t.Run("adds metadata to snyk_error", func(t *testing.T) {
metaValues := map[string]any{"Foo": "bar"}
err := cli.NewConnectionTimeoutError("")
actualErr := decorateError(err, metaValues)
var ecError snyk_errors.Error
if errors.As(actualErr, &ecError) {
assert.Equal(t, metaValues, ecError.Meta)
}
})

t.Run("is ErrorWithExitCode", func(t *testing.T) {
err := &cli_errors.ErrorWithExitCode{
ExitCode: 2,
Expand All @@ -36,7 +47,7 @@ func Test_decorateError(t *testing.T) {
t.Run("is already error catalog error", func(t *testing.T) {
err := cli.NewConnectionTimeoutError("")
actualErr := decorateError(err, meta)
assert.ErrorAs(t, actualErr, &err)
assert.Equal(t, err, actualErr)
})

t.Run("is a generic error", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion cliv2/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require (
github.com/snyk/cli-extension-sbom v0.0.0-20241016065306-0df2be5b3b8f
github.com/snyk/container-cli v0.0.0-20240821111304-7ca1c415a5d7
github.com/snyk/error-catalog-golang-public v0.0.0-20250121101159-e6a61b2bfae6
github.com/snyk/go-application-framework v0.0.0-20250219152506-780621a1e630
github.com/snyk/go-application-framework v0.0.0-20250220150450-1833fdd0eddd
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65
github.com/snyk/snyk-iac-capture v0.6.5
github.com/snyk/snyk-ls v0.0.0-20250213084108-c87400c00e06
Expand Down
4 changes: 2 additions & 2 deletions cliv2/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -782,8 +782,8 @@ github.com/snyk/container-cli v0.0.0-20240821111304-7ca1c415a5d7 h1:Zn5BcV76oFAb
github.com/snyk/container-cli v0.0.0-20240821111304-7ca1c415a5d7/go.mod h1:38w+dcAQp9eG3P5t2eNS9eG0reut10AeJjLv5lJ5lpM=
github.com/snyk/error-catalog-golang-public v0.0.0-20250121101159-e6a61b2bfae6 h1:qY954YMn/7TaapgatD1bn4hfGQSmu56W6EgS2m8c++I=
github.com/snyk/error-catalog-golang-public v0.0.0-20250121101159-e6a61b2bfae6/go.mod h1:Ytttq7Pw4vOCu9NtRQaOeDU2dhBYUyNBe6kX4+nIIQ4=
github.com/snyk/go-application-framework v0.0.0-20250219152506-780621a1e630 h1:UK4badUJV9DbhN6/lk+IJgesEpJBNUqNgzHBLL/qw30=
github.com/snyk/go-application-framework v0.0.0-20250219152506-780621a1e630/go.mod h1:hqn5+hhsz17IC/BhsMcUQUKiyyb3txYzudu1mqs47Jo=
github.com/snyk/go-application-framework v0.0.0-20250220150450-1833fdd0eddd h1:3uYzn8HsA16brUC6JmJQ9IuUZpykh/r50s+d1TOnNBI=
github.com/snyk/go-application-framework v0.0.0-20250220150450-1833fdd0eddd/go.mod h1:hqn5+hhsz17IC/BhsMcUQUKiyyb3txYzudu1mqs47Jo=
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65 h1:CEQuYv0Go6MEyRCD3YjLYM2u3Oxkx8GpCpFBd4rUTUk=
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65/go.mod h1:88KbbvGYlmLgee4OcQ19yr0bNpXpOr2kciOthaSzCAg=
github.com/snyk/policy-engine v0.33.0 h1:nXH4LEVrYbEuSEq4RJBObRY2fduaXiovAJt3Kni1baY=
Expand Down

0 comments on commit 8d4289a

Please sign in to comment.