You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/errors/errors_test.go

55 lines
993 B

4 years ago
package errors
import (
"errors"
"fmt"
"testing"
)
func TestErrorsMatch(t *testing.T) {
s := &StatusError{Code: 1}
st := &StatusError{Code: 2}
if errors.Is(s, st) {
t.Errorf("error is not match: %+v -> %+v", s, st)
}
s.Code = 1
st.Code = 1
if !errors.Is(s, st) {
t.Errorf("error is not match: %+v -> %+v", s, st)
}
s.Reason = "test_reason"
s.Reason = "test_reason"
if !errors.Is(s, st) {
t.Errorf("error is not match: %+v -> %+v", s, st)
}
if Reason(s) != "test_reason" {
t.Errorf("error is not match: %+v -> %+v", s, st)
}
}
func TestErrorIs(t *testing.T) {
err1 := &StatusError{Code: 1}
t.Log(err1)
err2 := fmt.Errorf("wrap : %w", err1)
t.Log(err2)
if !(errors.Is(err2, err1)) {
t.Errorf("error is not match: a: %v b: %v ", err2, err1)
}
}
func TestErrorAs(t *testing.T) {
err1 := &StatusError{Code: 1}
err2 := fmt.Errorf("wrap : %w", err1)
err3 := new(StatusError)
if !errors.As(err2, &err3) {
t.Errorf("error is not match: %v", err2)
}
}