Make item event responses compatible with strict schemas
This commit is contained in:
@@ -81,6 +81,21 @@ func TestExtractPreservesInvalidCandidatesAndEmptyResults(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestExtractMapsNullableResponseFieldsToAbsentArtifactFields(t *testing.T) {
|
||||
client := &fakeItemEventsLLMClient{content: []byte(`{"events":[{"name":"Hidden Cache","kind":"discovered","quantity":null,"from":null,"to":null,"source_refs":[{"start_segment":1,"end_segment":1}]}]}`)}
|
||||
result, err := newExtractor(t, client).Extract(context.Background(), extractionRequest())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(result.Value.Events) != 1 {
|
||||
t.Fatalf("events = %#v, want one", result.Value.Events)
|
||||
}
|
||||
event := result.Value.Events[0]
|
||||
if event.Quantity != nil || event.From != "" || event.To != "" {
|
||||
t.Fatalf("nullable response fields mapped to artifact values: %#v", event)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExtractUsesSourceDocumentOrderForCandidates(t *testing.T) {
|
||||
client := &fakeItemEventsLLMClient{response: extractionResponse{Events: []itemEventResponse{
|
||||
{Name: "Later", Kind: "discovered", SourceRefs: responseRefs(10, 10)},
|
||||
|
||||
Reference in New Issue
Block a user