Files
audita/examples/library-adoption/prompts_test.go

43 lines
1.5 KiB
Go

package main
import (
"bytes"
"context"
"testing"
"gitea.maximumdirect.net/eric/audita/internal/framework/responseschema"
"gitea.maximumdirect.net/eric/audita/internal/prompts"
pk "gitea.maximumdirect.net/eric/promptkit"
)
func TestRealPromptRenderingParity(t *testing.T) {
r := testRuntime(t, demonstrationClient().Transport)
vars := roleVars()
vars["TranscriptDescriptionBlock"] = "Transcript description:\nSynthetic context\n\n"
for _, pair := range []struct{ id, profile string }{{"modules.grammar.proposal", "proposal"}, {"validators.grammar_review", "assessment"}} {
system, user, _, err := prompts.RenderUserSystem(pair.id, vars)
if err != nil {
t.Fatal(err)
}
prepared, err := r.Engine.Prepare(context.Background(), pk.RunRequest{PromptID: pair.id, ProfileID: pair.profile, Vars: vars, APIKey: "synthetic-test-secret"})
if err != nil {
t.Fatal(err)
}
if len(prepared.Messages) != 2 || prepared.Messages[0].Content != system || prepared.Messages[1].Content != user {
t.Fatalf("adapted prompt differs from Audita v1.1.0: %s", pair.id)
}
}
}
func TestSchemaFixturesMatchAudita(t *testing.T) {
for file, key := range map[string]responseschema.Key{"correction_set.v1.json": responseschema.CorrectionSetKey, "validator_decision_set.v1.json": responseschema.ValidatorDecisionSetKey} {
fixture, err := assets.ReadFile("schemas/" + file)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(fixture, responseschema.MustLookup(key).JSONSchema) {
t.Fatalf("schema differs: %s", file)
}
}
}