flexigo-support-bot / tests /test_analytics.py
victor34593993's picture
wave2: analytics + cross-sell + discounts + stock watches
825b28a verified
Raw
History Blame Contribute Delete
995 Bytes
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