Skip to content

Commit

Permalink
more tests for external libs and pkg/errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Southclaws committed Nov 29, 2022
1 parent 3508b37 commit 3db1e55
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 6 deletions.
21 changes: 21 additions & 0 deletions tests/external.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package tests

import (
"errors"
"fmt"

pkg_errors "github.com/pkg/errors"
)

var (
errExternalStdlib = errors.New("stdlib external error")
errExternalPkgerr = pkg_errors.New("github.com/pkg/errors external error")
)

func externalError() error {
return fmt.Errorf("external error wrapped with errorf: %w", errExternalStdlib)
}

func externalWrappedError() error {
return pkg_errors.Wrap(errExternalPkgerr, "external error wrapped with pkg/errors")
}
31 changes: 31 additions & 0 deletions tests/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,34 @@ failed to call function
\s+.+fault/tests/test_callers.go:11
`, fmt.Sprintf("%+v", err))
}

func TestFormatStdlibErrorfWrappedExternallyWrappedError(t *testing.T) {
a := assert.New(t)

err := errorCaller(7)

a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err.Error()))
a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err))
a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%v", err))
a.Regexp(`errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error
\s+.+fault/tests/test_callers.go:29
failed to call function
\s+.+fault/tests/test_callers.go:20
\s+.+fault/tests/test_callers.go:11
`, fmt.Sprintf("%+v", err))
}

func TestFormatStdlibErrorfWrappedExternallyWrappedErrorBLank(t *testing.T) {
a := assert.New(t)

err := errorProducerFromRootCause(8)

a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err.Error()))
a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err))
a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%v", err))

a.Regexp(
`external error wrapped with pkg/errors: github.com/pkg/errors external error
\s+.+fault/tests/test_callers.go:29
`, fmt.Sprintf("%+v", err))
}
1 change: 1 addition & 0 deletions tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.18

require (
github.com/Southclaws/fault v0.4.1
github.com/pkg/errors v0.9.1
github.com/stretchr/testify v1.8.1
)

Expand Down
2 changes: 2 additions & 0 deletions tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
Expand Down
12 changes: 6 additions & 6 deletions tests/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ func rootCause(kind int) error {
} else if kind == 6 {
err := externalError()
return fmt.Errorf("errorf wrapped external: %w", err)
} else if kind == 7 {
err := externalWrappedError()
return fmt.Errorf("errorf wrapped external: %w", err)
} else if kind == 8 {
err := externalWrappedError()
return err
}
return nil
}

var errExternalStdlib = errors.New("stdlib external error")

func externalError() error {
return fmt.Errorf("external error wrapped with errorf: %w", errExternalStdlib)
}

0 comments on commit 3db1e55

Please sign in to comment.