from autoshorts.review.approvals import ApprovalDecision, parse_approval_command


def test_parse_freigabe_alle_approves_all_platforms():
    decision = parse_approval_command("Freigabe alle")

    assert decision == ApprovalDecision(
        action="approve",
        platforms=("youtube", "tiktok", "instagram"),
        change_request=None,
    )


def test_parse_platform_specific_freigabe_normalizes_german_platform_names():
    decision = parse_approval_command("  Freigabe YouTube  ")

    assert decision.action == "approve"
    assert decision.platforms == ("youtube",)
    assert decision.change_request is None


def test_parse_aendern_keeps_requested_change_text():
    decision = parse_approval_command("Ändern: Hook stärker, weniger generische KI-Bilder")

    assert decision.action == "change_request"
    assert decision.platforms == ()
    assert decision.change_request == "Hook stärker, weniger generische KI-Bilder"


def test_parse_ablehnen_rejects_without_platforms():
    decision = parse_approval_command("Ablehnen")

    assert decision == ApprovalDecision(
        action="reject",
        platforms=(),
        change_request=None,
    )


def test_unknown_or_ambiguous_command_requires_clarification():
    decision = parse_approval_command("passt schon")

    assert decision.action == "needs_clarification"
    assert decision.platforms == ()
    assert decision.change_request is None
