39 lines
824 B
Go
39 lines
824 B
Go
package oops
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
var SampleErrorValue = errors.New("some error occurred that you should handle")
|
|
|
|
type SampleErrorType struct {
|
|
Message string
|
|
}
|
|
|
|
func (s SampleErrorType) Error() string {
|
|
return s.Message
|
|
}
|
|
|
|
func init() {
|
|
zerolog.ErrorStackMarshaler = ZerologStackMarshaler
|
|
}
|
|
|
|
func TestNew(t *testing.T) {
|
|
t.Run("errors.Is", func(t *testing.T) {
|
|
err := New(SampleErrorValue, "test error")
|
|
if !errors.Is(err, SampleErrorValue) {
|
|
t.Fatal("error did not appear to wrap the sample value")
|
|
}
|
|
})
|
|
t.Run("errors.As", func(t *testing.T) {
|
|
err := New(SampleErrorType{Message: "some fancy error type has occurred"}, "test error")
|
|
var sErr SampleErrorType
|
|
if !errors.As(err, &sErr) {
|
|
t.Fatal("error did not appear to wrap the sample error type")
|
|
}
|
|
})
|
|
}
|