"""Tests for deterministic demo scenario selection."""

from app.adapters.demo.scenario import select_replay_scenario, select_scenario


def test_scenario_selection_prefers_normalized_exact_query_or_chip() -> None:
    query_match = select_scenario("something calm for while I am programming, but not boring")
    chip_match = select_scenario("  FOCUS, while CODING!  ")

    assert query_match.key == "focus-coding"
    assert query_match.is_exact
    assert chip_match.key == "focus-coding"
    assert chip_match.is_exact


def test_scenario_selection_falls_back_to_nearest_fixture() -> None:
    match = select_scenario("Focus while codign")

    assert match.key == "focus-coding"
    assert not match.is_exact


def test_prior_results_select_a_matching_refinement_or_same_scenario() -> None:
    refinement = select_replay_scenario("Focus while coding", True)
    direct_refinement = select_replay_scenario("More electronic", False)
    same_scenario = select_replay_scenario("Rainy Sunday", True)

    assert refinement.key == "focus-coding-refine"
    assert not refinement.is_exact
    assert direct_refinement.key == "focus-coding-refine"
    assert direct_refinement.is_exact
    assert same_scenario.key == "rainy-sunday"
