"""用户列表须返回职位/角色关联字段,供前端列表列展示。""" import inspect from app.api import admin as admin_api from app.crud import user as user_crud def test_admin_list_users_enriches_role_and_post_relations(): """回归:列表不得仅用 _row_to_dict,须补全职位/有效角色。""" source = inspect.getsource(admin_api.list_users) assert "enrich_user_dicts_with_relations" in source def test_enrich_user_dicts_with_relations_empty_list(): class _DummySession: def query(self, *args, **kwargs): # pragma: no cover raise AssertionError("空列表不应访问数据库") assert user_crud.enrich_user_dicts_with_relations(_DummySession(), []) == [] def test_enrich_user_dicts_with_relations_fills_empty_fields_without_id(): class _DummySession: def query(self, *args, **kwargs): # pragma: no cover raise AssertionError("无 id 条目不应访问数据库") items = [{"userNo": "u1"}] out = user_crud.enrich_user_dicts_with_relations(_DummySession(), items) assert out is items assert items[0]["roleIds"] == [] assert items[0]["postIds"] == [] assert items[0]["postInheritedRoleIds"] == [] assert items[0]["effectiveRoleIds"] == [] assert items[0]["effectiveRoleNames"] == []