"""US-002 (PRD 5.20): medii_disponibile + rar_env_efectiv (REQ-DISP / REQ-DEFAULT)."""

from __future__ import annotations

from app.rar_env import medii_disponibile, rar_env_efectiv


def _cont(**kw):
    base = {
        "rar_test_enabled": 0, "rar_prod_enabled": 0,
        "rar_creds_test_enc": None, "rar_creds_prod_enc": None,
        "rar_env_default": "prod",
    }
    base.update(kw)
    return base


def test_doar_prod_cu_creds():
    c = _cont(rar_prod_enabled=1, rar_creds_prod_enc="TOK")
    assert medii_disponibile(c) == ["prod"]
    assert rar_env_efectiv(c) == "prod"


def test_ambele():
    c = _cont(
        rar_test_enabled=1, rar_creds_test_enc="T",
        rar_prod_enabled=1, rar_creds_prod_enc="P",
        rar_env_default="test",
    )
    assert medii_disponibile(c) == ["test", "prod"]
    assert rar_env_efectiv(c) == "test"


def test_zero_cand_lipsesc_creds():
    # activat dar fara creds -> nu e disponibil
    c = _cont(rar_test_enabled=1, rar_prod_enabled=1)
    assert medii_disponibile(c) == []
    assert rar_env_efectiv(c) is None


def test_default_cade_pe_singurul_disponibil():
    # default='prod' dar prod nu e disponibil; doar test e -> efectiv = test
    c = _cont(rar_test_enabled=1, rar_creds_test_enc="T", rar_env_default="prod")
    assert medii_disponibile(c) == ["test"]
    assert rar_env_efectiv(c) == "test"


def test_enabled_fara_creds_nu_e_disponibil():
    c = _cont(rar_prod_enabled=1, rar_creds_prod_enc="  ")  # whitespace = gol
    assert medii_disponibile(c) == []
