fb62c28e10
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from src.admin import db as admin_db
|
|
from src.auth.db import init_schema
|
|
from src.migrations import apply_pending
|
|
from src.subscriptions.db import init_schema as init_subscriptions_schema
|
|
|
|
|
|
def _setup():
|
|
init_schema()
|
|
init_subscriptions_schema()
|
|
apply_pending()
|
|
|
|
|
|
def test_log_action_then_list_actions_returns_it(users_db_path):
|
|
_setup()
|
|
|
|
admin_db.log_action("admin@ex.fr", "subscription_status_change", 42, "active → cancelled")
|
|
|
|
rows = admin_db.list_actions()
|
|
assert len(rows) == 1
|
|
assert rows[0]["admin_email"] == "admin@ex.fr"
|
|
assert rows[0]["action"] == "subscription_status_change"
|
|
assert rows[0]["target_user_id"] == 42
|
|
assert rows[0]["details"] == "active → cancelled"
|
|
|
|
|
|
def test_list_actions_most_recent_first(users_db_path):
|
|
_setup()
|
|
|
|
admin_db.log_action("admin@ex.fr", "action_one", None, None)
|
|
admin_db.log_action("admin@ex.fr", "action_two", None, None)
|
|
|
|
rows = admin_db.list_actions()
|
|
assert [r["action"] for r in rows] == ["action_two", "action_one"]
|
|
|
|
|
|
def test_list_actions_respects_limit(users_db_path):
|
|
_setup()
|
|
|
|
for i in range(3):
|
|
admin_db.log_action("admin@ex.fr", f"action_{i}", None, None)
|
|
|
|
rows = admin_db.list_actions(limit=2)
|
|
assert len(rows) == 2
|