"""首页「ETC/油卡充值发放管理」角标统计全部待发放申请(ETC + 油卡)。""" from datetime import date from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from app.models.pl_models import PlVehicleRechargeApply from app.services.pl_menu_badge_service import ( MENU_CODE_RECHARGE_RECORD, build_menu_badge_counts, ) def test_recharge_record_badge_counts_all_pending(monkeypatch): engine = create_engine("sqlite://") PlVehicleRechargeApply.__table__.create(engine) db = sessionmaker(bind=engine)() def add(row_id: str, recharge_type: str, status: str) -> None: db.add( PlVehicleRechargeApply( id=row_id, apply_no=f"NO-{row_id}", license_plate="鄂A00001", recharge_type=recharge_type, apply_date=date(2026, 9, 1), applicant_id="u1", status=status, tenant_no="t1", create_dept_id="d1", ) ) for index in range(6): add(f"fuel-{index}", "fuel", "pending") add("etc-done", "etc", "disbursed") add("etc-wait", "etc", "pending") db.commit() monkeypatch.setattr( "app.services.pl_menu_badge_service.apply_pl_scope", lambda query, *_args, **_kwargs: query, ) counts = build_menu_badge_counts( db, tenant_no="t1", user=object(), user_id="u1", menu_codes=[MENU_CODE_RECHARGE_RECORD], ) # 6 fuel pending + 1 etc pending assert counts[MENU_CODE_RECHARGE_RECORD] == 7