from __future__ import annotations import unittest from govoplan_dist_lists.backend.manifest import manifest class DistributionListsInterfaceDocumentationContractTests(unittest.TestCase): def test_route_and_surfaces_remain_declared(self) -> None: frontend = manifest.frontend self.assertIsNotNone(frontend) self.assertEqual( {"/distribution-lists"}, {item.path for item in frontend.routes}, # type: ignore[union-attr] ) self.assertEqual( { "dist_lists.page", "dist_lists.editor", "dist_lists.preview", "dist_lists.picker", }, {item.id for item in frontend.view_surfaces}, # type: ignore[union-attr] ) def test_help_and_consequence_metadata_remain_published(self) -> None: topics = {topic.id: topic for topic in manifest.documentation} boundary = topics["dist_lists.boundary"] reference = topics["dist_lists.reference.fields-and-consequences"] self.assertIn("dist_lists.editor", boundary.metadata["help_contexts"]) self.assertIn( "dist_lists.field.entry-mode", reference.metadata["help_contexts"], ) self.assertIn( "freeze_snapshot", reference.metadata["consequence_classes"], ) self.assertIn( "delete_definition", reference.metadata["consequence_classes"], ) if __name__ == "__main__": unittest.main()