fix: 예수금 음수 표시 + 배포 후 화면이 영구 정지하던 문제
- 예수금: dnca_tot_amt(D+2 기준)를 먼저 읽어 당일 매수가 많으면 -913,965원처럼 음수가 표시됐다. 주문가능현금(_ord_psbl_cash) → prvs_rcdl_excc_amt → nxdy_excc_amt 순으로 첫 양수를 사용한다(데이트레이딩 엔진과 동일 기준). - 프론트: /auth/me 가 한 번 실패하면(배포 중 502) useTenantMode.mode 가 undefined 로 남아 포트폴리오·매매 쿼리가 전부 enabled:false 로 멈췄다(오늘 26분간 API 호출 0건 확인). auth-me 를 실패 시 10초 간격 재시도로 바꾸고, queryClient 기본값에 retry 3회/백오프, refetchOnReconnect, networkMode:'always' 를 적용해 백엔드 복구 시 자동으로 되살아나게 함. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -109,3 +109,24 @@ def test_manual_sell_handles_null_current_price():
|
||||
from app.api.endpoints import portfolio as pf
|
||||
src = inspect.getsource(pf.sell_stock)
|
||||
assert "price or holding.current_price or holding.average_price or 0" in src
|
||||
|
||||
|
||||
def test_available_cash_skips_negative_deposit():
|
||||
"""예수금이 D+2 기준으로 음수(-913,965)여도 주문가능/정산 금액을 우선 사용해야 한다."""
|
||||
from app.api.endpoints.portfolio import _extract_balance_data
|
||||
|
||||
out = _extract_balance_data({"output2": [{
|
||||
"dnca_tot_amt": "-913965", # D+2 예수금 (당일 매수 반영으로 음수)
|
||||
"nxdy_excc_amt": "4524276",
|
||||
"prvs_rcdl_excc_amt": "5224855",
|
||||
"tot_evlu_amt": "9825565",
|
||||
}]})
|
||||
assert out["available_cash"] == 5224855.0
|
||||
|
||||
# 주문가능현금이 주입되면 그 값이 최우선
|
||||
out2 = _extract_balance_data({"output2": [{
|
||||
"_ord_psbl_cash": 6000000.0,
|
||||
"dnca_tot_amt": "-913965",
|
||||
"prvs_rcdl_excc_amt": "5224855",
|
||||
}]})
|
||||
assert out2["available_cash"] == 6000000.0
|
||||
|
||||
Reference in New Issue
Block a user