package mq import ( "errors" "fmt" "testing" ) func TestPermanentHandlerErrorClassification(t *testing.T) { cause := errors.New("invalid inbound command") if got := Permanent(nil); got != nil { t.Fatalf("nil permanent error = %v, want nil", got) } permanent := Permanent(cause) if !errors.Is(permanent, cause) { t.Fatal("permanent error lost its cause") } if !IsPermanent(permanent) || !IsPermanent(fmt.Errorf("handler: %w", permanent)) { t.Fatal("wrapped permanent handler error must reject delivery") } if IsPermanent(cause) || IsPermanent(nil) { t.Fatal("transient or absent handler error must not reject delivery") } }