@@ -8,6 +8,7 @@ import (
12 "charm.land/fantasy"
13 "charm.land/fantasy"
13 "charm.land/x/vcr"
14 "charm.land/x/vcr"
@@ -793,3 +794,34 @@ func TestPreparePrompt_OrphanedToolUseMixed(t *testing.T) {
794 require.Equal(t, 1, syntheticCount, "expected exactly one synthetic result for the orphaned call")
795 require.Equal(t, 1, syntheticCount, "expected exactly one synthetic result for the orphaned call")
798+func TestProviderRetryLogFields(t *testing.T) {
799+ t.Run("nil provider error", func(t *testing.T) {
800+ fields := providerRetryLogFields(nil, 2*time.Second)
801+ require.Equal(t, []any{"retry_delay", "2s"}, fields)
804+ t.Run("provider error with title and message", func(t *testing.T) {
805+ fields := providerRetryLogFields(&fantasy.ProviderError{
807+ Title: "rate limit",
808+ Message: "too many requests",
809+ }, 1500*time.Millisecond)
810+ require.Equal(t, []any{
811+ "retry_delay", "1.5s",
813+ "title", "rate limit",
814+ "message", "too many requests",
818+ t.Run("provider error without optional strings", func(t *testing.T) {
819+ fields := providerRetryLogFields(&fantasy.ProviderError{
822+ require.Equal(t, []any{
823+ "retry_delay", "1s",