from __future__ import annotations import unittest from govoplan_core.core.modules import ModuleManifest from govoplan_dataflow.backend.manifest import get_manifest class DataflowManifestTests(unittest.TestCase): def test_manifest_declares_independent_dataflow_boundary(self) -> None: manifest = get_manifest() self.assertIsInstance(manifest, ModuleManifest) self.assertEqual(manifest.id, "dataflow") self.assertEqual(manifest.dependencies, ()) self.assertIn("connectors", manifest.optional_dependencies) self.assertIn("reporting", manifest.optional_dependencies) self.assertIn("workflow", manifest.optional_dependencies) self.assertEqual(manifest.frontend.package_name, "@govoplan/dataflow-webui") self.assertIsNotNone(manifest.route_factory) self.assertIsNotNone(manifest.migration_spec) self.assertEqual( { "dataflow.pipeline_catalog", "dataflow.pipeline_preview", "dataflow.run_lifecycle", "dataflow.dataset_output", }, {item.name for item in manifest.provides_interfaces}, ) if __name__ == "__main__": unittest.main()