| 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") |
| await db_session.flush() |
|
|
| sa = await analytics.summary(db_session, a.id) |
| assert sa["messages"] == 3 |
| assert sa["cart_links"] == 1 |
| assert sa["conversations"] == 2 |
|
|
| sb = await analytics.summary(db_session, b.id) |
| assert sb["messages"] == 1 |
| assert sb["cart_links"] == 0 |
|
|