from membra_liquidity_agg.ledger import Ledger from membra_liquidity_agg.models import EventIn, EventKind, RiskLevel from membra_liquidity_agg.loop import LiquidityLoop from membra_liquidity_agg.risk import RiskGovernor def test_ledger_ingest_redacts_secret(tmp_path): db = tmp_path / "x.db" ledger = Ledger(db) ledger.init() e = EventIn( kind=EventKind.SYSTEM_HEALTH, source="test", risk=RiskLevel.INFO, payload={"api_key": "SHOULD_NOT_APPEAR", "safe": "ok"}, ) out = ledger.add_event(e) assert out["payload"]["api_key"] == "[REDACTED_SECRET]" assert out["receipt_hash"] def test_loop_step(tmp_path): ledger = Ledger(tmp_path / "x.db") ledger.init() out = LiquidityLoop(ledger).step() assert out["to"] in {"OBSERVE", "HALTED"} def test_oversized_sol_rejected(): gov = RiskGovernor() d = gov.reject_oversized_order_intent("SOL_USDT", size=20, price=67.0) assert not d.allowed assert "exceeds" in d.reason