"""The entity rollup aggregates invested cost and the latest signed valuation correctly.""" from datetime import date from ten31portal.models import ( Entity, EntityType, Holding, Position, RoundStatus, Valuation, ValuationRound, ) def test_rollup_sums_cost_and_latest_signed_value(auth_client, session): entity = Entity(name="Rollup Fund", type=EntityType.fund) session.add(entity) session.commit() session.refresh(entity) holding = Holding(entity_id=entity.id, company_name="Acme") session.add(holding) session.commit() session.refresh(holding) position = Position( holding_id=holding.id, security_name="Acme Series A", investment_date=date(2025, 1, 15), cost_cents=100_000, ) session.add(position) session.commit() session.refresh(position) rnd = ValuationRound( entity_id=entity.id, quarter_end=date(2026, 3, 31), status=RoundStatus.approved, ) session.add(rnd) session.commit() session.refresh(rnd) session.add(Valuation(round_id=rnd.id, position_id=position.id, value_cents=150_000)) session.commit() resp = auth_client.get("/api/entities/rollup") assert resp.status_code == 200, resp.text row = next(r for r in resp.json() if r["id"] == entity.id) assert row["invested_cents"] == 100_000 assert row["last_signed_value_cents"] == 150_000 assert row["committed_cents"] == 0 # no capital-account statements added