Adding pagination to scopes page
This commit is contained in:
1 parent
7a15d9f7c0
commit
6d7c5c5604
6 files changed
+160
-51
No files matched your search
@@ -404,6 +404,73 @@ async def test_bulk_delete_scopes_leaves_unselected_rows(
|
||||
assert await augmented_part_crud.get(db, ids["s2"].id) is not None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_scopes_page_shows_single_page_summary(
|
||||
client, seeded, make_user, db_sessionmaker
|
||||
):
|
||||
async with db_sessionmaker() as db:
|
||||
await _seed_guide_data(db) # 2 scopes, well under the default page size
|
||||
await make_user("pager1@example.com", role_ids=[seeded["roles"]["user"].id])
|
||||
await _web_login(client, "pager1@example.com")
|
||||
resp = await client.get("/scopes")
|
||||
assert resp.status_code == 200
|
||||
assert "Showing 2 records." in resp.text
|
||||
assert "Next" not in resp.text
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_scopes_filter_paginates_results(
|
||||
client, seeded, make_user, db_sessionmaker
|
||||
):
|
||||
async with db_sessionmaker() as db:
|
||||
scope_t = PartType(name="Scope")
|
||||
db.add(scope_t)
|
||||
await db.flush()
|
||||
for i in range(5):
|
||||
db.add(
|
||||
AugmentedPart(
|
||||
description=f"Scope {i:02d}",
|
||||
colour_id=1,
|
||||
manufacturer_id=1,
|
||||
part_type_id=scope_t.id,
|
||||
)
|
||||
)
|
||||
await db.commit()
|
||||
await make_user("pager2@example.com", role_ids=[seeded["roles"]["user"].id])
|
||||
await _web_login(client, "pager2@example.com")
|
||||
|
||||
resp = await client.get("/scopes/filter", params={"page_size": 2})
|
||||
assert resp.status_code == 200
|
||||
body = resp.text
|
||||
assert "Scope 00" in body
|
||||
assert "Scope 01" in body
|
||||
assert "Scope 02" not in body
|
||||
assert "Showing 1–2 of 5." in body
|
||||
|
||||
resp2 = await client.get("/scopes/filter", params={"page_size": 2, "page": 3})
|
||||
assert resp2.status_code == 200
|
||||
body2 = resp2.text
|
||||
assert "Scope 04" in body2
|
||||
assert "Scope 00" not in body2
|
||||
assert "Showing 5–5 of 5." in body2
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_scopes_filter_clamps_out_of_range_page(
|
||||
client, seeded, make_user, db_sessionmaker
|
||||
):
|
||||
async with db_sessionmaker() as db:
|
||||
await _seed_guide_data(db) # 2 scopes
|
||||
await make_user("pager3@example.com", role_ids=[seeded["roles"]["user"].id])
|
||||
await _web_login(client, "pager3@example.com")
|
||||
|
||||
resp = await client.get("/scopes/filter", params={"page_size": 1, "page": 99})
|
||||
assert resp.status_code == 200
|
||||
# Clamped to the last real page (2), not an empty page 99.
|
||||
assert "Zeta 1-6x24" in resp.text
|
||||
assert "Alpha 3-18x50" not in resp.text
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_bulk_delete_scopes_forbidden_without_write_permission(
|
||||
client, seeded, make_user, db_sessionmaker
|
||||
|
||||
Reference in new issue
Block a user