Ctrl K
ComunidadGuías…

internal/llm/protocol_fixture_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package llm

import (
	"encoding/json"
	"os"
	"testing"
)

func TestProtocolStructuredRequestFixtureMatchesCapabilityRequest(t *testing.T) {
	var request capabilityStructuredResponseRequestDocument
	if errorValue := json.Unmarshal(protocolLLMFixture(t, "structured-response-request"), &request); errorValue != nil {
		t.Fatal(errorValue)
	}
	if request.ExecutionMode != "auto" || request.Model != "example/router" {
		t.Fatalf("unexpected structured request fixture: %#v", request)
	}
	if request.Context == nil || request.Context.RequesterPersonID != "person-1" {
		t.Fatalf("structured request fixture lost requester context: %#v", request.Context)
	}
	if request.StructuredOutputSchema.Name != "task_list" || len(request.StructuredOutputSchema.Document) == 0 {
		t.Fatalf("structured request fixture lost output schema: %#v", request.StructuredOutputSchema)
	}
}

func protocolLLMFixture(t *testing.T, fixtureName string) json.RawMessage {
	t.Helper()
	documentBytes, errorValue := os.ReadFile("../../protocol/fixtures/valid.json")
	if errorValue != nil {
		t.Fatal(errorValue)
	}
	var fixtures map[string][]json.RawMessage
	if errorValue := json.Unmarshal(documentBytes, &fixtures); errorValue != nil {
		t.Fatal(errorValue)
	}
	if len(fixtures[fixtureName]) != 1 {
		t.Fatalf("expected one %s fixture", fixtureName)
	}
	return fixtures[fixtureName][0]
}