from __future__ import annotations from app import analytics from app.models import Tenant async def test_record_and_summary_per_tenant(db_session): a = Tenant(slug="a") b = Tenant(slug="b") db_session.add_all([a, b]) await db_session.flush() analytics.record(db_session, a.id, "turn", session_id="s1") analytics.record(db_session, a.id, "turn", session_id="s1") analytics.record(db_session, a.id, "cart_link", session_id="s1", meta={"items": 2}) analytics.record(db_session, a.id, "turn", session_id="s2") analytics.record(db_session, b.id, "turn", session_id="s9") # other tenant await db_session.flush() sa = await analytics.summary(db_session, a.id) assert sa["messages"] == 3 # 3 turns for tenant a assert sa["cart_links"] == 1 assert sa["conversations"] == 2 # s1, s2 — NOT b's s9 sb = await analytics.summary(db_session, b.id) assert sb["messages"] == 1 assert sb["cart_links"] == 0 # isolated from tenant a