aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/tests/test_audit.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/tests/test_audit.py')
-rw-r--r--packages/meshbay-node/tests/test_audit.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/meshbay-node/tests/test_audit.py b/packages/meshbay-node/tests/test_audit.py
index b2ed15e..8755be2 100644
--- a/packages/meshbay-node/tests/test_audit.py
+++ b/packages/meshbay-node/tests/test_audit.py
@@ -53,6 +53,27 @@ async def test_filter_by_user(audit):
@pytest.mark.asyncio
+async def test_pagination_newest_first(audit):
+ for i in range(5):
+ await audit.log_event(user_id="u1", event="connect", detail=f"e{i}")
+ # distinct timestamps so ORDER BY is deterministic
+ await audit._db.execute(
+ "UPDATE audit_log SET timestamp = ? WHERE detail = ?",
+ (1000 + i, f"e{i}"))
+ await audit._db.commit()
+
+ page1 = await audit.get_entries(limit=2, offset=0)
+ page2 = await audit.get_entries(limit=2, offset=2)
+ page3 = await audit.get_entries(limit=2, offset=4)
+
+ assert [e.detail for e in page1] == ["e4", "e3"] # newest first
+ assert [e.detail for e in page2] == ["e2", "e1"]
+ assert [e.detail for e in page3] == ["e0"] # last, partial page
+ # offset past the end is empty, not an error
+ assert await audit.get_entries(limit=2, offset=99) == []
+
+
+@pytest.mark.asyncio
async def test_entry_count(audit):
assert await audit.entry_count() == 0
await audit.log_event(user_id="u1", event="connect")