43 lines
1.5 KiB
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)
|
|
}
|
|
}
|
|
}
|