"""Tier-aware notes expander prompt tests.""" from __future__ import annotations from backend.models.schema import RatingSystem, RatingValue, TemplateSchema from backend.prompts.notes_expander import ( EXPANDER_SYSTEM_BASE_MAXIMUM, EXPANDER_SYSTEM_BASE_MEDIUM, EXPANDER_SYSTEM_BASE_MINIMUM, build_expander_messages, select_expander_prompt, ) def _schema(*, rating: bool) -> TemplateSchema: rs = RatingSystem( detected=rating, name="Condition Rating", values=[RatingValue(value="1"), RatingValue(value="2"), RatingValue(value="3")], ) return TemplateSchema(rating_system=rs) def test_select_expander_prompt_routes_tiers(): assert select_expander_prompt("minimum") is EXPANDER_SYSTEM_BASE_MINIMUM assert select_expander_prompt("medium") is EXPANDER_SYSTEM_BASE_MEDIUM assert select_expander_prompt("maximum") is EXPANDER_SYSTEM_BASE_MAXIMUM assert select_expander_prompt("bogus") is EXPANDER_SYSTEM_BASE_MAXIMUM assert select_expander_prompt(None) is EXPANDER_SYSTEM_BASE_MAXIMUM def test_build_expander_messages_respects_interference_level(): schema = _schema(rating=False) min_msgs = build_expander_messages(schema, "det to DPC", interference_level="minimum") med_msgs = build_expander_messages(schema, "det to DPC", interference_level="medium") max_msgs = build_expander_messages(schema, "det to DPC", interference_level="maximum") assert "zero-inference" in min_msgs[0]["content"] assert "proofreading assistant" in med_msgs[0]["content"] assert "expert UK RICS surveyor" in max_msgs[0]["content"] assert min_msgs[0]["content"] != med_msgs[0]["content"] != max_msgs[0]["content"] assert min_msgs[1]["content"] == "det to DPC"