feat: integrate reports into Campaign navigation
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
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
|
||||
@@ -31,3 +34,31 @@ def test_operator_queue_is_an_integrated_campaign_view() -> None:
|
||||
]
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user