Files
go-sip/internal/mq/handler_test.go
T

25 lines
646 B
Go

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")
}
}