23 lines
846 B
Go
23 lines
846 B
Go
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)
|
|
}
|
|
}
|