test_accept_organization_invite.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from __future__ import absolute_import
  2. from django.db.models import F
  3. from sentry.testutils import AcceptanceTestCase
  4. from sentry.models import Organization, AuthProvider
  5. class AcceptOrganizationInviteTest(AcceptanceTestCase):
  6. def setUp(self):
  7. super(AcceptOrganizationInviteTest, self).setUp()
  8. self.user = self.create_user("foo@example.com")
  9. self.org = self.create_organization(name="Rowdy Tiger", owner=None)
  10. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  11. self.member = self.create_member(
  12. user=None,
  13. email="bar@example.com",
  14. organization=self.org,
  15. role="owner",
  16. teams=[self.team],
  17. )
  18. def test_invite_simple(self):
  19. self.login_as(self.user)
  20. self.browser.get(self.member.get_invite_link().split("/", 3)[-1])
  21. self.browser.wait_until('[data-test-id="accept-invite"]')
  22. self.browser.snapshot(name="accept organization invite")
  23. assert self.browser.element_exists('[aria-label="join-organization"]')
  24. def test_invite_not_authenticated(self):
  25. self.browser.get(self.member.get_invite_link().split("/", 3)[-1])
  26. self.browser.wait_until('[data-test-id="accept-invite"]')
  27. assert self.browser.element_exists('[aria-label="create-account"]')
  28. def test_invite_2fa_enforced_org(self):
  29. self.org.update(flags=F("flags").bitor(Organization.flags.require_2fa))
  30. self.browser.get(self.member.get_invite_link().split("/", 3)[-1])
  31. self.browser.wait_until('[data-test-id="accept-invite"]')
  32. assert not self.browser.element_exists_by_test_id("2fa-warning")
  33. self.login_as(self.user)
  34. self.org.update(flags=F("flags").bitor(Organization.flags.require_2fa))
  35. self.browser.get(self.member.get_invite_link().split("/", 3)[-1])
  36. self.browser.wait_until('[data-test-id="accept-invite"]')
  37. assert self.browser.element_exists_by_test_id("2fa-warning")
  38. def test_invite_sso_org(self):
  39. AuthProvider.objects.create(organization=self.org, provider="google")
  40. self.browser.get(self.member.get_invite_link().split("/", 3)[-1])
  41. self.browser.wait_until('[data-test-id="accept-invite"]')
  42. assert self.browser.element_exists_by_test_id("action-info-sso")
  43. assert self.browser.element_exists('[aria-label="sso-login"]')