# edited by glg
from pypos.modules.penjualan.services.load_transaksi_service import LoadTransaksiService


def test_parse_transaksi_id_handles_invalid_human_input():
    service = LoadTransaksiService()
    assert service.parse_transaksi_id("") is None
    assert service.parse_transaksi_id("abc") is None
    assert service.parse_transaksi_id("-1") is None
    assert service.parse_transaksi_id("0") is None
    assert service.parse_transaksi_id("123") == 123


def test_parse_header_requires_minimum_fields():
    service = LoadTransaksiService()
    assert service.parse_header(None) is None
    assert service.parse_header([1, "cust"]) is None
    parsed = service.parse_header([1, "cust", None, None, None])
    assert parsed == (1, "cust", 0, 0, 0)


def test_build_preorder_payload_returns_none_when_raw_missing():
    service = LoadTransaksiService()
    assert service.build_preorder_payload(None, [], 1) is None
    payload = service.build_preorder_payload({"nomer": "INV-1"}, [{"id": 1}], 99)
    assert payload["transaksi_id"] == 99
    assert payload["detail_rows"] == [{"id": 1}]
