34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
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"
|