package errors import ( "errors" "testing" ) func TestAppErrorBasics(t *testing.T) { root := errors.New("root") appErr := NewBadRequest("bad", root) if appErr.Code != 400 || appErr.Message != "bad" { t.Fatalf("unexpected appErr fields: %+v", appErr) } if got := appErr.Error(); got != "bad: root" { t.Fatalf("unexpected Error(): %s", got) } if !Is(appErr, root) { t.Fatalf("Is should match wrapped error") } var target *AppError if !As(appErr, &target) { t.Fatalf("As should succeed") } } func TestWrap(t *testing.T) { if Wrap(nil, "msg") != nil { t.Fatalf("Wrap nil should return nil") } err := errors.New("base") wrapped := Wrap(err, "ctx") if wrapped.Error() != "ctx: base" { t.Fatalf("wrap message mismatch: %v", wrapped) } }