"""Unit tests — intake_triage proposal.""" from __future__ import annotations from steering.eval_context import SteeringEvalContext from steering.kernel.models import HorizonMarker, LifecycleContext, SteeringBinding from steering.proposals.intake_triage import propose_intake_triage from tenant_context import TenantContext def test_intake_triage_proposes_backlog_items(): binding = SteeringBinding( primary_method_key="sequential_dependency", composition_modifier=None, next_work_strategy_key="sequential_dependency", ) eval_ctx = SteeringEvalContext( tenant_ctx=TenantContext( user_id="u1", email="t@example.com", display_name="Test", portal_role="user", tenant_id="t1", tenant_slug="t", tenant_name="T", tenant_role="admin", actor_id=None, actor_type=None, session_token="test", capabilities=frozenset(), ), initiative_id="init-1", binding=binding, horizon=HorizonMarker(kind="none"), lifecycle=LifecycleContext( current_state="execution", current_state_label="Ausführung", slot_map={}, active_slots=(), operational_slots=(), ), operating_context={ "steering_elements": ["gate_fulfillment"], "data_slices": ["backlog"], "backlog_vocabulary": {"convertible_kinds": ["story", "bug", "issue"]}, }, ) eval_ctx._backlog_items = [ {"id": "b1", "title": "Item", "item_kind": "story", "status": "new", "priority": "normal", "sort_order": 0}, ] eval_ctx._actions = [] eval_ctx._work_cycles = [] result = propose_intake_triage(eval_ctx, read_models={}) assert len(result) == 1 assert result[0]["proposal_key"] == "intake_triage" assert result[0]["ranker_key"] == "heuristic_v0"