from __future__ import annotations from govoplan_campaign.backend.manifest import ( OPERATOR_QUEUE_REQUIRED_ANY, OPERATOR_QUEUE_SURFACE_ID, get_manifest, ) from govoplan_core.core.registry import manifest_view_surfaces def test_operator_queue_is_an_integrated_campaign_view() -> None: manifest = get_manifest() assert manifest.frontend is not None assert "/operator" not in {item.path for item in manifest.nav_items} assert "/operator" not in {item.path for item in manifest.frontend.nav_items} routes = {route.path: route for route in manifest.frontend.routes} assert "/operator" not in routes queue = routes["/campaigns/queue"] assert queue.component == "OperatorQueuePage" assert queue.required_all == ("campaigns:campaign:read",) assert queue.required_any == OPERATOR_QUEUE_REQUIRED_ANY assert OPERATOR_QUEUE_SURFACE_ID == "campaigns.route.operator" assert queue.surface_id == OPERATOR_QUEUE_SURFACE_ID queue_surfaces = [ surface for surface in manifest_view_surfaces(manifest) if surface.id == OPERATOR_QUEUE_SURFACE_ID ] assert len(queue_surfaces) == 1 assert queue_surfaces[0].description == "/campaigns/queue"