# edited by glg
from pypos.core.utils.ui_message_utils import sanitize_ui_message


def test_sanitize_ui_message_tidak_memotong_pesan_bisnis_harga_web_admin():
    raw = (
        "Barang 'Produk A (barcode: 6957754300822)' ditemukan, tetapi harganya belum diatur.\n"
        "Langkah yang perlu dilakukan:\n"
        "1. Buka Web Admin.\n"
        "2. Atur harga jual barang tersebut.\n"
        "3. Jalankan sinkronisasi di POS."
    )
    safe, sanitized = sanitize_ui_message("warning", raw)
    assert sanitized is False
    assert safe == raw


def test_sanitize_ui_message_tetap_memotong_traceback_teknis():
    raw = "Traceback (most recent call last): TypeError: bad"
    safe, sanitized = sanitize_ui_message("warning", raw)
    assert sanitized is True
    assert "proses tidak dapat dilanjutkan" in safe.lower()


def test_sanitize_ui_message_http_500_tetap_ditangani():
    raw = "HTTP 500 upstream timeout"
    safe, sanitized = sanitize_ui_message("warning", raw)
    assert sanitized is True
    assert "koneksi ke endpoint server" in safe.lower()
