Finalize D&D prompt integration and documentation
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user