|
- package metrics
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestClassifyError_RateLimitEmptyMsg(t *testing.T) {
- errorType, errorCode := ClassifyError(429, "")
- assert.Equal(t, "rate_limit", errorType)
- assert.Equal(t, "429", errorCode)
- }
-
- func TestClassifyError_UpstreamHTTP502(t *testing.T) {
- errorType, errorCode := ClassifyError(502, "")
- assert.Equal(t, "upstream", errorType)
- assert.Equal(t, "502", errorCode)
- }
-
- func TestClassifyError_UpstreamHTTP500(t *testing.T) {
- errorType, errorCode := ClassifyError(500, "")
- assert.Equal(t, "upstream", errorType)
- assert.Equal(t, "500", errorCode)
- }
-
- func TestClassifyError_Timeout(t *testing.T) {
- errorType, errorCode := ClassifyError(0, "context deadline exceeded")
- assert.Equal(t, "timeout", errorType)
- assert.Equal(t, "context_deadline_exceeded", errorCode)
- }
-
- func TestClassifyError_TimeoutCanceled(t *testing.T) {
- errorType, errorCode := ClassifyError(0, "context canceled")
- assert.Equal(t, "timeout", errorType)
- assert.Equal(t, "context_canceled", errorCode)
- }
-
- func TestClassifyError_AuthInvalidToken(t *testing.T) {
- errorType, errorCode := ClassifyError(401, "invalid api key")
- assert.Equal(t, "auth", errorType)
- assert.Equal(t, "401", errorCode)
- }
-
- func TestClassifyError_AuthForbidden(t *testing.T) {
- errorType, errorCode := ClassifyError(403, "")
- assert.Equal(t, "auth", errorType)
- assert.Equal(t, "403", errorCode)
- }
-
- func TestClassifyError_RateLimit(t *testing.T) {
- errorType, errorCode := ClassifyError(429, "rate limit exceeded")
- assert.Equal(t, "rate_limit", errorType)
- assert.Equal(t, "429", errorCode)
- }
-
- func TestClassifyError_BillingInsufficientQuota(t *testing.T) {
- errorType, errorCode := ClassifyError(402, "insufficient quota")
- assert.Equal(t, "billing", errorType)
- assert.Equal(t, "insufficient_quota", errorCode)
- }
-
- func TestClassifyError_BillingQuotaExceeded(t *testing.T) {
- errorType, errorCode := ClassifyError(403, "quota exceeded")
- assert.Equal(t, "billing", errorType)
- assert.Equal(t, "quota_exceeded", errorCode)
- }
-
- func TestClassifyError_Other(t *testing.T) {
- errorType, errorCode := ClassifyError(0, "something unexpected")
- assert.Equal(t, "other", errorType)
- assert.Equal(t, "unknown", errorCode)
- }
-
- func TestClassifyError_BadRequest(t *testing.T) {
- errorType, errorCode := ClassifyError(400, "")
- assert.Equal(t, "other", errorType)
- assert.Equal(t, "400", errorCode)
- }
-
- func TestClassifyError_EmptyBoth(t *testing.T) {
- errorType, errorCode := ClassifyError(0, "")
- assert.Equal(t, "other", errorType)
- assert.Equal(t, "unknown", errorCode)
- }
|