feat(api): render_npc_digest — persona/knowledge/moves/utterance
This commit is contained in:
@@ -40,3 +40,26 @@ def test_narrator_body_is_authored():
|
||||
assert "TBD" not in body
|
||||
assert "[FACT:" in body # the tag instruction is present
|
||||
assert "second person" in body # the core task is present
|
||||
|
||||
|
||||
def test_render_npc_digest_includes_all_sections():
|
||||
from app import prompts
|
||||
log = {
|
||||
"player": {"name": "Aldric", "class_id": "sellsword", "luck_descriptor": "the dice are kind"},
|
||||
"location": {"id": "greywater_docks", "name": "Greywater Docks"},
|
||||
"party": [], "recent_events": ["a gull screamed"],
|
||||
"established_facts": ["the eastern bridge is out"],
|
||||
"active_quests": [], "humiliations": [],
|
||||
}
|
||||
out = prompts.render_npc_digest(
|
||||
log, persona="A harried clerk.", knowledge=["The ledger is gone."],
|
||||
disposition=-10, available_moves=["reveal(varrell_twins)", "refuse"],
|
||||
utterance="What happened here?",
|
||||
)
|
||||
assert "A harried clerk." in out
|
||||
assert "-10" in out
|
||||
assert "The ledger is gone." in out
|
||||
assert "reveal(varrell_twins)" in out
|
||||
assert "Greywater Docks" in out
|
||||
assert "the eastern bridge is out" in out
|
||||
assert out.rstrip().endswith('What happened here?"') # utterance last
|
||||
|
||||
Reference in New Issue
Block a user