84 lines
2.4 KiB
Go
84 lines
2.4 KiB
Go
package googleapi
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
var errBase = errors.New("base")
|
|
|
|
func TestErrors_IsHelpers(t *testing.T) {
|
|
if !IsAuthRequiredError(&AuthRequiredError{Service: "gmail", Email: "a@b.com", Cause: errBase}) {
|
|
t.Fatalf("expected IsAuthRequiredError")
|
|
}
|
|
|
|
if !IsRateLimitError(&RateLimitError{RetryAfter: time.Second, Retries: 2}) {
|
|
t.Fatalf("expected IsRateLimitError")
|
|
}
|
|
|
|
if !IsCircuitBreakerError(&CircuitBreakerError{}) {
|
|
t.Fatalf("expected IsCircuitBreakerError")
|
|
}
|
|
|
|
if !IsQuotaExceededError(&QuotaExceededError{Resource: "gmail"}) {
|
|
t.Fatalf("expected IsQuotaExceededError")
|
|
}
|
|
|
|
if !IsNotFoundError(&NotFoundError{Resource: "msg", ID: "id"}) {
|
|
t.Fatalf("expected IsNotFoundError")
|
|
}
|
|
|
|
if !IsPermissionDeniedError(&PermissionDeniedError{Resource: "file", Action: "read"}) {
|
|
t.Fatalf("expected IsPermissionDeniedError")
|
|
}
|
|
}
|
|
|
|
func TestErrors_Messages(t *testing.T) {
|
|
authErr := &AuthRequiredError{Service: "gmail", Email: "a@b.com", Cause: errBase}
|
|
if got := authErr.Error(); got != "auth required for gmail a@b.com" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if !errors.Is(authErr, errBase) {
|
|
t.Fatalf("expected unwrap to match base")
|
|
}
|
|
|
|
if got := (&RateLimitError{RetryAfter: 2 * time.Second, Retries: 3}).Error(); !strings.Contains(got, "retry after 2s") {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&RateLimitError{Retries: 1}).Error(); !strings.Contains(got, "after 1 retries") {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&NotFoundError{Resource: "file"}).Error(); got != "file not found" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&NotFoundError{Resource: "file", ID: "id1"}).Error(); got != "file not found: id1" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&PermissionDeniedError{Resource: "file"}).Error(); got != "permission denied for file" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&PermissionDeniedError{Resource: "file", Action: "delete"}).Error(); got != "permission denied: cannot delete file" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&CircuitBreakerError{}).Error(); got == "" {
|
|
t.Fatalf("expected circuit breaker message")
|
|
}
|
|
|
|
if got := (&QuotaExceededError{Resource: "drive"}).Error(); got != "API quota exceeded for drive" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
|
|
if got := (&QuotaExceededError{}).Error(); got != "API quota exceeded" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
}
|