Migrate Views interface patterns

This commit is contained in:
2026-08-03 11:57:44 +02:00
parent c433434570
commit c125f332ba
12 changed files with 1013 additions and 198 deletions
@@ -0,0 +1,42 @@
from __future__ import annotations
import unittest
from govoplan_views.backend.manifest import manifest
class ViewsInterfaceDocumentationContractTests(unittest.TestCase):
def test_views_surfaces_remain_declared(self) -> None:
frontend = manifest.frontend
self.assertIsNotNone(frontend)
surfaces = {surface.id for surface in frontend.view_surfaces} # type: ignore[union-attr]
self.assertEqual(
{
"views.selector",
"views.admin.system",
"views.admin.tenant",
"views.settings.personal",
},
surfaces,
)
def test_views_topics_publish_stable_help_contexts(self) -> None:
topics = {topic.id: topic for topic in manifest.documentation}
self.assertIn("views.interface-projections", topics)
self.assertIn("views.reference.fields-and-consequences", topics)
projection_contexts = set(
topics["views.interface-projections"].metadata["help_contexts"]
)
self.assertIn("views.selector", projection_contexts)
self.assertIn("views.admin.system", projection_contexts)
self.assertIn("views.admin.tenant", projection_contexts)
self.assertIn("views.settings.personal", projection_contexts)
reference = topics["views.reference.fields-and-consequences"]
self.assertIn("views.action.publish", reference.metadata["help_contexts"])
self.assertIn("required", reference.metadata["consequence_classes"])
if __name__ == "__main__":
unittest.main()