Rework invite creation as guided flow
Magent CI/CD / verify (push) Canceled after 8m52s
Magent CI/CD / deploy-prod (push) Canceled after 0s
Magent CI/CD / deploy-beta (push) Canceled after 0s

This commit is contained in:
2026-09-01 21:53:27 +12:00
parent 3aac40ba0f
commit 2dbe11e6bc
4 changed files with 707 additions and 218 deletions
+26
View File
@@ -1793,6 +1793,32 @@ class PortalMediaStatusTests(unittest.IsolatedAsyncioTestCase):
class InviteOperationalStateTests(TempDatabaseMixin, unittest.IsolatedAsyncioTestCase):
async def test_manual_invite_can_be_created_without_recipient_email(self) -> None:
payload = await admin_router.create_invite(
{
"label": "The neighbour",
"recipient_email": None,
"send_email": False,
"max_uses": 1,
},
{"username": "admin", "role": "admin"},
)
self.assertEqual(payload["status"], "ok")
self.assertEqual(payload["invite"]["label"], "The neighbour")
self.assertIsNone(payload["invite"]["recipient_email"])
self.assertTrue(payload["invite"]["enabled"])
async def test_email_delivery_still_requires_valid_recipient(self) -> None:
with self.assertRaises(HTTPException) as context:
await admin_router.create_invite(
{"label": "Family", "send_email": True},
{"username": "admin", "role": "admin"},
)
self.assertEqual(context.exception.status_code, 400)
self.assertIn("required for email delivery", str(context.exception.detail))
async def test_invite_list_reports_automatic_operational_states(self) -> None:
ready = db.create_signup_invite(code="READY", recipient_email="ready@example.com")
db.create_signup_invite(code="DISABLED", enabled=False, recipient_email="off@example.com")