[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/log/RFC.md fully. Find ONE feature ... #16
2 changed files with 21 additions and 6 deletions
|
|
@ -137,9 +137,6 @@ func WrapWithRecovery(err error, op, msg string, retryable bool, retryAfter *tim
|
|||
//
|
||||
// return log.WrapCode(err, "VALIDATION_ERROR", "user.Validate", "invalid email")
|
||||
func WrapCode(err error, code, op, msg string) error {
|
||||
if code == "" {
|
||||
code = ErrCode(err)
|
||||
}
|
||||
if err == nil && code == "" {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -152,9 +149,6 @@ func WrapCode(err error, code, op, msg string) error {
|
|||
//
|
||||
// return log.WrapCodeWithRecovery(err, "TEMPORARY_UNAVAILABLE", "api.Call", "temporary failure", true, &retryAfter, "retry with backoff")
|
||||
func WrapCodeWithRecovery(err error, code, op, msg string, retryable bool, retryAfter *time.Duration, nextAction string) error {
|
||||
if code == "" {
|
||||
code = ErrCode(err)
|
||||
}
|
||||
if err == nil && code == "" {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,6 +165,16 @@ func TestWrapCode_Good(t *testing.T) {
|
|||
assert.Contains(t, err.Error(), "[INVALID_INPUT]")
|
||||
}
|
||||
|
||||
func TestWrapCode_Good_EmptyCodeDoesNotInherit(t *testing.T) {
|
||||
inner := WrapCode(errors.New("base"), "INNER_CODE", "inner.Op", "inner failed")
|
||||
|
||||
outer := WrapCode(inner, "", "outer.Op", "outer failed")
|
||||
|
||||
var logErr *Err
|
||||
assert.True(t, As(outer, &logErr))
|
||||
assert.Equal(t, "", logErr.Code)
|
||||
}
|
||||
|
||||
func TestWrapCodeWithRecovery_Good(t *testing.T) {
|
||||
retryAfter := time.Minute
|
||||
err := WrapCodeWithRecovery(errors.New("validation failed"), "INVALID_INPUT", "api.Validate", "bad request", true, &retryAfter, "retry with backoff")
|
||||
|
|
@ -179,6 +189,17 @@ func TestWrapCodeWithRecovery_Good(t *testing.T) {
|
|||
assert.Equal(t, "INVALID_INPUT", logErr.Code)
|
||||
}
|
||||
|
||||
func TestWrapCodeWithRecovery_Good_EmptyCodeDoesNotInherit(t *testing.T) {
|
||||
retryAfter := time.Minute
|
||||
inner := WrapCodeWithRecovery(errors.New("validation failed"), "INNER_CODE", "inner.Op", "inner failed", true, &retryAfter, "retry later")
|
||||
|
||||
outer := WrapCodeWithRecovery(inner, "", "outer.Op", "outer failed", true, &retryAfter, "retry later")
|
||||
|
||||
var logErr *Err
|
||||
assert.True(t, As(outer, &logErr))
|
||||
assert.Equal(t, "", logErr.Code)
|
||||
}
|
||||
|
||||
func TestWrapCode_Good_NilError(t *testing.T) {
|
||||
// WrapCode with nil error but with code still creates an error
|
||||
err := WrapCode(nil, "CODE", "op", "msg")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue