"""detail_steps — episode_reference_policy 가 card inputs 로 threading."""
from app.core.dto.scene_analysis import SceneAnalysisContext
from app.core.steps.detail_steps import _derive_card_inputs_from_ctx


def test_derive_card_inputs_includes_episode_reference_policy():
    manifest = {"schema_version": 1, "policy": {
        "C08": {"mode": "text_only", "entity_type": "character",
                "reason": "x", "visible_shot_count": 1, "provisional": False}}}
    ctx = SceneAnalysisContext()
    ctx.episode_reference_policy = manifest
    inputs = _derive_card_inputs_from_ctx(
        ctx=ctx, seg={"scene_index": 1}, shot_info=None)
    assert inputs.get("episode_reference_policy") == manifest


def test_derive_card_inputs_none_when_absent():
    ctx = SceneAnalysisContext()
    inputs = _derive_card_inputs_from_ctx(
        ctx=ctx, seg={"scene_index": 1}, shot_info=None)
    assert inputs.get("episode_reference_policy") is None
