Preserve LLM generation failure metadata
This commit is contained in:
22
internal/framework/contracts/errors_test.go
Normal file
22
internal/framework/contracts/errors_test.go
Normal file
@@ -0,0 +1,22 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user