feat(webui): complete postbox quick access

This commit is contained in:
2026-08-19 19:49:00 +02:00
parent d005065e50
commit 15d93aaa25
7 changed files with 286 additions and 12 deletions
@@ -1,10 +1,14 @@
from __future__ import annotations
import unittest
from pathlib import Path
from govoplan_postbox.backend.manifest import manifest
REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
class PostboxInterfaceDocumentationContractTests(unittest.TestCase):
def test_route_and_contributed_surfaces_remain_declared(self) -> None:
frontend = manifest.frontend
@@ -41,6 +45,27 @@ class PostboxInterfaceDocumentationContractTests(unittest.TestCase):
self.assertIn("archive_postbox", reference.metadata["consequence_classes"])
self.assertIn("withdraw_or_expire", reference.metadata["consequence_classes"])
quick_tool = manifest.frontend.quick_access_tools[0]
self.assertEqual(("postbox.message",), quick_tool.returned_reference_kinds)
self.assertEqual("postbox.quick_access.messages", quick_tool.help_context_id)
self.assertEqual("/postbox", quick_tool.full_page_path)
def test_quick_access_is_bounded_and_owner_launched(self) -> None:
quick_access = (
REPOSITORY_ROOT / "webui/src/features/postbox/PostboxQuickAccess.tsx"
).read_text(encoding="utf-8")
page = (
REPOSITORY_ROOT / "webui/src/features/postbox/PostboxPage.tsx"
).read_text(encoding="utf-8")
self.assertIn("const MESSAGE_LIMIT = 7", quick_access)
self.assertIn('"unread"', quick_access)
self.assertIn('kind: "message"', quick_access)
self.assertIn("launchContext.actingContext", quick_access)
self.assertIn("quickAccessLaunchState(launchContext)", quick_access)
self.assertIn('parameters.get("quickAction") !== "compose"', page)
self.assertIn("openComposeFor(postbox)", page)
if __name__ == "__main__":
unittest.main()