from app.core.onboarding import classify_live_connectivity


def test_active_session_without_internet_probe_is_unknown():
    status, message = classify_live_connectivity(
        olt_online=True,
        mikrotik_reachable=True,
        secret_enabled=True,
        pppoe_active=True,
        internet_reachable=None,
        errors=[],
    )
    assert status == "unknown"
    assert "belum bisa dipastikan" in message.lower()


def test_verified_onu_pppoe_and_internet_is_active():
    status, message = classify_live_connectivity(
        olt_online=True,
        mikrotik_reachable=True,
        secret_enabled=True,
        pppoe_active=True,
        internet_reachable=True,
        errors=[],
    )
    assert status == "active"
    assert "terverifikasi" in message.lower()


def test_probe_failure_is_unknown_not_failed():
    status, message = classify_live_connectivity(
        olt_online=None,
        mikrotik_reachable=False,
        secret_enabled=None,
        pppoe_active=None,
        internet_reachable=None,
        errors=["MikroTik tidak dapat dihubungi"],
    )
    assert status == "unknown"
    assert "MikroTik tidak dapat dihubungi" in message


def test_confirmed_no_pppoe_session_is_waiting_session():
    status, _ = classify_live_connectivity(
        olt_online=True,
        mikrotik_reachable=True,
        secret_enabled=True,
        pppoe_active=False,
        internet_reachable=None,
        errors=[],
    )
    assert status == "waiting_session"
