"""权限中间件测试。""" from types import SimpleNamespace from app.core.permissions import filter_fields, require_min_role, require_role, ROLE_HIERARCHY class TestRoleHierarchy: """角色层级。""" def test_admin_highest(self): assert ROLE_HIERARCHY["admin"] > ROLE_HIERARCHY["investor"] assert ROLE_HIERARCHY["admin"] > ROLE_HIERARCHY["founder"] def test_investor_above_founder(self): assert ROLE_HIERARCHY["investor"] > ROLE_HIERARCHY["founder"] class TestFilterFields: """字段级权限过滤。""" def test_investor_sees_all(self): """investor 可见全部字段。""" data = {"name": "公司A", "total_funding": "1亿", "description": "测试"} user = SimpleNamespace(role="investor") result = filter_fields("company", data, user) assert result == data def test_founder_filtered(self): """founder 只能看限定字段。""" data = {"name": "公司A", "total_funding": "1亿", "description": "测试", "id": "123"} user = SimpleNamespace(role="founder") result = filter_fields("company", data, user) assert "name" in result assert "id" in result assert "total_funding" not in result def test_admin_sees_all(self): """admin 可见全部字段。""" data = {"name": "公司A", "total_funding": "1亿"} user = SimpleNamespace(role="admin") result = filter_fields("company", data, user) assert result == data