feat: integrate files and portal surfaces
This commit is contained in:
@@ -40,6 +40,7 @@ from govoplan_postbox.backend.db.models import (
|
||||
PostboxTemplateRevision,
|
||||
)
|
||||
from govoplan_postbox.backend.router import router
|
||||
from govoplan_postbox.backend.portal_projection import PortalProjection
|
||||
from govoplan_postbox.backend.service import PostboxService
|
||||
|
||||
|
||||
@@ -220,6 +221,7 @@ class PostboxRouterTests(unittest.TestCase):
|
||||
account=SimpleNamespace(id="account-1"),
|
||||
user=SimpleNamespace(id="membership-1"),
|
||||
)
|
||||
self.principal = principal
|
||||
app = FastAPI()
|
||||
app.include_router(router, prefix="/api/v1")
|
||||
|
||||
@@ -250,6 +252,35 @@ class PostboxRouterTests(unittest.TestCase):
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.assertIn("not active for this principal", response.text)
|
||||
|
||||
def test_portal_projection_requires_explicit_visibility_and_keeps_postbox_access(self) -> None:
|
||||
projection = PortalProjection()
|
||||
with Session(self.engine) as session, patch(
|
||||
"govoplan_postbox.backend.portal_projection.get_service",
|
||||
return_value=self.service,
|
||||
):
|
||||
self.assertEqual(
|
||||
(),
|
||||
projection.list_portal_entries(
|
||||
session,
|
||||
self.principal,
|
||||
tenant_id="tenant-1",
|
||||
),
|
||||
)
|
||||
postbox = session.get(Postbox, self.postbox_id)
|
||||
assert postbox is not None
|
||||
postbox.settings = {**postbox.settings, "portal_visible": True}
|
||||
session.flush()
|
||||
|
||||
entries = projection.list_portal_entries(
|
||||
session,
|
||||
self.principal,
|
||||
tenant_id="tenant-1",
|
||||
)
|
||||
|
||||
self.assertEqual(1, len(entries))
|
||||
self.assertEqual(self.postbox_id, entries[0].postbox.id)
|
||||
self.assertEqual(f"/postbox?postbox={self.postbox_id}", entries[0].route_path)
|
||||
|
||||
def test_template_impact_preview_is_available_without_writes(self) -> None:
|
||||
with Session(self.engine) as session:
|
||||
before = session.query(Postbox).count()
|
||||
|
||||
Reference in New Issue
Block a user