package contracts import ( "errors" "testing" ) func TestLLMGenerationErrorPreservesApplicationMetadata(t *testing.T) { legacy := NewLLMGenerationError(503, "provider failure") if !errors.Is(legacy, ErrLLMGeneration) || legacy.StatusCode() != 503 || legacy.FailureKind() != LLMGenerationFailureGeneration || legacy.RetriesExhausted() || legacy.Attempts() != 0 { t.Fatalf("legacy generation error = %#v", legacy) } err := NewLLMGenerationErrorWithMetadata(429, "provider failure", LLMGenerationMetadata{ FailureKind: LLMGenerationFailureProviderStatus, RetriesExhausted: true, Attempts: 3, }) if !errors.Is(err, ErrLLMGeneration) || err.StatusCode() != 429 || err.FailureKind() != LLMGenerationFailureProviderStatus || !err.RetriesExhausted() || err.Attempts() != 3 { t.Fatalf("generation error = %#v", err) } }