Files

38 lines
871 B
Go
Raw Permalink Normal View History

package processing
import (
"errors"
"fmt"
"testing"
)
func TestClientErrorRecognizesRateLimit(t *testing.T) {
msg, ok := ClientError(ErrRateLimited)
if !ok {
t.Fatal("expected ErrRateLimited to be a client error")
}
if msg != ErrRateLimited.Error() {
t.Fatalf("msg=%q", msg)
}
if !errors.Is(ErrRateLimited, ErrRateLimited) {
t.Fatal("sentinel identity broken")
}
}
func TestClientErrorRecognizesWrappedTooManyProducts(t *testing.T) {
err := fmt.Errorf("%w (max %d)", ErrTooManyProducts, 50)
msg, ok := ClientError(err)
if !ok {
t.Fatal("expected wrapped ErrTooManyProducts")
}
if msg != "too many products (max 50)" {
t.Fatalf("msg=%q", msg)
}
}
func TestClientErrorRejectsOpaqueErrors(t *testing.T) {
if _, ok := ClientError(errors.New("pq: connection refused")); ok {
t.Fatal("opaque DB error must not be treated as client-safe")
}
}