Finalize D&D prompt integration and documentation

This commit is contained in:
2026-07-21 14:58:26 +00:00
parent b344d16dc1
commit 3ba2bfd7f6
8 changed files with 105 additions and 236 deletions

View File

@@ -18,29 +18,29 @@ func TestScriptoriumPromptPreparesTranscriptAndTaskMessages(t *testing.T) {
if prepared.PromptID != PromptID {
t.Fatalf("prompt id = %q, want %q", prepared.PromptID, PromptID)
}
if got := len(prepared.Messages); got != 5 {
t.Fatalf("message count = %d, want 5", got)
transcriptMessages := 0
referenceMessageFound := false
for _, message := range prepared.Messages {
if strings.Contains(message.Content, string(transcript)) {
transcriptMessages++
if message.Role != "user" || message.CacheControl == nil {
t.Fatalf("transcript message did not render as cacheable user message: %#v", message)
}
}
if strings.Contains(message.Content, "Alice: Aria") &&
strings.Contains(message.Content, "Aria: cleric") &&
strings.Contains(message.Content, "Brightmantle: temple") {
referenceMessageFound = true
if message.Role != "user" || message.CacheControl == nil {
t.Fatalf("reference message did not render as cacheable user message: %#v", message)
}
}
}
if prepared.Messages[1].Role != "user" || prepared.Messages[1].CacheControl == nil {
t.Fatalf("transcript message did not render as cacheable user message: %#v", prepared.Messages[1])
if transcriptMessages != 1 {
t.Fatalf("raw transcript rendered in %d messages, want exactly one", transcriptMessages)
}
if !strings.Contains(prepared.Messages[1].Content, string(transcript)) {
t.Fatalf("transcript message did not include source input")
}
if prepared.Messages[2].CacheControl == nil {
t.Fatalf("reference message did not render as cacheable user message: %#v", prepared.Messages[2])
}
if !strings.Contains(prepared.Messages[2].Content, "Alice: Aria") {
t.Fatalf("reference message missing player content")
}
if !strings.Contains(prepared.Messages[2].Content, "Aria: cleric") {
t.Fatalf("reference message missing party content")
}
if !strings.Contains(prepared.Messages[2].Content, "Brightmantle: temple") {
t.Fatalf("reference message missing glossary content")
}
if strings.Contains(prepared.Messages[3].Content, string(transcript)) {
t.Fatalf("task message leaked transcript bytes")
if !referenceMessageFound {
t.Fatalf("reference message did not render all supplied reference material")
}
}