65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
from __future__ import annotations
|
|
|
|
from govoplan_campaign.backend.manifest import (
|
|
CAMPAIGN_MODULE_REQUIRED_ANY,
|
|
OPERATOR_QUEUE_REQUIRED_ANY,
|
|
OPERATOR_QUEUE_SURFACE_ID,
|
|
REPORTS_REQUIRED_ANY,
|
|
REPORTS_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"
|
|
|
|
|
|
def test_aggregate_reports_are_an_integrated_campaign_view() -> None:
|
|
manifest = get_manifest()
|
|
assert manifest.frontend is not None
|
|
|
|
backend_nav = {item.path: item for item in manifest.nav_items}
|
|
frontend_nav = {item.path: item for item in manifest.frontend.nav_items}
|
|
assert "/reports" not in backend_nav
|
|
assert "/reports" not in frontend_nav
|
|
assert backend_nav["/campaigns"].required_any == CAMPAIGN_MODULE_REQUIRED_ANY
|
|
assert frontend_nav["/campaigns"].required_any == CAMPAIGN_MODULE_REQUIRED_ANY
|
|
|
|
routes = {route.path: route for route in manifest.frontend.routes}
|
|
assert "/reports" not in routes
|
|
report = routes["/campaigns/reports"]
|
|
assert report.component == "AggregateReportsPage"
|
|
assert report.required_any == REPORTS_REQUIRED_ANY
|
|
assert REPORTS_SURFACE_ID == "campaigns.route.reports"
|
|
assert report.surface_id == REPORTS_SURFACE_ID
|
|
|
|
report_surfaces = [
|
|
surface
|
|
for surface in manifest_view_surfaces(manifest)
|
|
if surface.id == REPORTS_SURFACE_ID
|
|
]
|
|
assert len(report_surfaces) == 1
|
|
assert report_surfaces[0].description == "/campaigns/reports"
|