fix(api): return real total for user pagination
This commit is contained in:
@@ -7,8 +7,9 @@ import pytest
|
||||
from fastapi import HTTPException
|
||||
from fastapi import Response
|
||||
|
||||
from app.auth.metadata_dependencies import get_current_metadata_admin
|
||||
from app.api.v1.endpoints import admin_metadata
|
||||
from app.api.pagination import PaginatedList
|
||||
from app.auth.metadata_dependencies import get_current_metadata_admin
|
||||
from app.domain.schemas.admin_metadata import (
|
||||
AdminProjectCreateRequest,
|
||||
MetadataUsersBatchSyncRequest,
|
||||
@@ -83,6 +84,28 @@ def test_to_async_sqlalchemy_url_preserves_password():
|
||||
assert "***" not in url
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_list_metadata_users_returns_page_with_real_total():
|
||||
users = [_user(username="alice"), _user(username="bob")]
|
||||
repo = SimpleNamespace(
|
||||
list_users=AsyncMock(return_value=users),
|
||||
count_users=AsyncMock(return_value=7),
|
||||
)
|
||||
|
||||
response = await admin_metadata.list_metadata_users(
|
||||
skip=2,
|
||||
limit=2,
|
||||
current_user=_user(role="admin", is_superuser=True),
|
||||
metadata_repo=repo,
|
||||
)
|
||||
|
||||
assert isinstance(response, PaginatedList)
|
||||
assert response.total == 7
|
||||
assert [item.username for item in response] == ["alice", "bob"]
|
||||
repo.list_users.assert_awaited_once_with(skip=2, limit=2)
|
||||
repo.count_users.assert_awaited_once_with()
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_sync_metadata_user_upserts_without_password(monkeypatch):
|
||||
keycloak_id = uuid4()
|
||||
|
||||
Reference in New Issue
Block a user