from __future__ import annotations from pathlib import Path import unittest from govoplan_files.backend.manifest import manifest REPOSITORY_ROOT = Path(__file__).resolve().parents[1] class FilesQuickAccessContractTests(unittest.TestCase): def test_manifest_declares_exact_version_result_and_fallback(self) -> None: tool = manifest.frontend.quick_access_tools[0] self.assertEqual("files.recent", tool.id) self.assertEqual(("files.file-version",), tool.returned_reference_kinds) self.assertEqual("files.quick_access.files", tool.help_context_id) self.assertEqual("/files", tool.full_page_path) def test_renderer_and_page_keep_recent_selection_and_upload_bounded(self) -> None: renderer = ( REPOSITORY_ROOT / "webui/src/features/files/FileQuickAccess.tsx" ).read_text(encoding="utf-8") page = ( REPOSITORY_ROOT / "webui/src/features/files/FilesPage.tsx" ).read_text(encoding="utf-8") self.assertIn('sort: "recent", page_size: 7', renderer) self.assertIn('kind: "file-version"', renderer) self.assertIn("quickAccessLaunchState(launchContext)", renderer) self.assertIn('to="/files?quickAction=upload"', renderer) self.assertIn('parameters.get("quickAction") !== "upload"', page) self.assertIn('openDialog("upload"', page) if __name__ == "__main__": unittest.main()