package store import ( "testing" "time" ) func TestRetryPolicyForError(t *testing.T) { tests := []struct { name string code string retryable bool delay time.Duration }{ {name: "provider unavailable", code: "provider_unavailable", retryable: true, delay: 30 * time.Second}, {name: "model unavailable", code: "model_unavailable", retryable: true, delay: 30 * time.Second}, {name: "timeout", code: "timeout", retryable: true, delay: 30 * time.Second}, {name: "storage", code: "storage_error", retryable: true, delay: 30 * time.Second}, {name: "bad response", code: "bad_response", retryable: true, delay: 2 * time.Minute}, {name: "unknown", code: "unknown", retryable: true, delay: 2 * time.Minute}, {name: "bad audio", code: "bad_audio"}, {name: "bad input", code: "bad_input"}, {name: "context length", code: "context_length"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := retryPolicyForError(tt.code) if got.Retryable != tt.retryable { t.Fatalf("Retryable = %v, want %v", got.Retryable, tt.retryable) } if got.Delay != tt.delay { t.Fatalf("Delay = %s, want %s", got.Delay, tt.delay) } }) } }