def do_user_can_invite_someone_to_notify(driver, basic_view): dashboard_page = DashboardPage(driver) dashboard_page.click_team_members_link() team_members_page = TeamMembersPage(driver) assert team_members_page.h1_is_team_members() team_members_page.click_invite_user() invite_user_page = InviteUserPage(driver) invited_user_randomness = str(uuid.uuid1()) invited_user_name = 'Invited User ' + invited_user_randomness invite_email = generate_unique_email(config['user']['email'], invited_user_randomness) if basic_view: invite_user_page.fill_invitation_form(invite_email, send_messages_only=True) else: invite_user_page.fill_invitation_form(invite_email, send_messages_only=False) invite_user_page.send_invitation() invite_user_page.sign_out() invite_user_page.wait_until_url_is(config['notify_admin_url']) # next part of interaction is from point of view of invitee # i.e. after visting invite_link we'll be registering using invite_email # but use same mobile number and password as profile invite_link = get_link( config['notify_templates']['invitation_template_id'], invite_email) driver.get(invite_link) register_from_invite_page = RegisterFromInvite(driver) register_from_invite_page.fill_registration_form(invited_user_name) register_from_invite_page.click_continue() do_verify(driver) dashboard_page = DashboardPage(driver) service_id = dashboard_page.get_service_id() dashboard_page.go_to_dashboard_for_service(service_id) assert dashboard_page.get_service_name() == config['service_name'] if basic_view: is_basic_view(dashboard_page) dashboard_page.sign_out() dashboard_page.wait_until_url_is(config['notify_admin_url']) else: is_view_for_all_permissions(dashboard_page)
def test_org_invite(driver, login_seeded_user): org_dashboard_page = OrganisationDashboardPage(driver) org_dashboard_page.go_to_dashboard_for_org( config['service']['organisation_id']) assert org_dashboard_page.is_current(config['service']['organisation_id']) org_dashboard_page.click_team_members_link() team_members_page = TeamMembersPage(driver) team_members_page.click_invite_user() # create a new user to log in to invited_user_email = generate_unique_email(config['user']['email'], uuid.uuid4()) invitation = InviteUserToOrgPage(driver) invitation.fill_invitation_form(email=invited_user_email) invitation.send_invitation() # now log out and create account as invited user dashboard_page = DashboardPage(driver) dashboard_page.sign_out() dashboard_page.wait_until_url_is(config['notify_admin_url']) invite_link = get_link( config['notify_templates']['org_invitation_template_id'], invited_user_email) driver.get(invite_link) register_from_invite_page = RegisterFromInvite(driver) register_from_invite_page.fill_registration_form( invited_user_email.split('@')[0]) register_from_invite_page.click_continue() do_verify(driver) org_dashboard_page = OrganisationDashboardPage(driver) # make sure we got to the dashboard page. It's their only account, so they'll be insta-redirected there. # They won't be able to see anything here tho since they're not a member of the service assert org_dashboard_page.is_current(config['service']['organisation_id'])
def do_user_can_invite_someone_to_notify(driver, profile, base_url): dashboard_page = DashboardPage(driver) dashboard_page.click_team_members_link() team_members_page = TeamMembersPage(driver) assert team_members_page.h1_is_team_members() team_members_page.click_invite_user() invite_user_page = InviteUserPage(driver) invited_user_randomness = str(uuid.uuid1()) invited_user_name = "Invited User " + invited_user_randomness invite_email = generate_unique_email(profile.email, invited_user_randomness) invite_user_page.fill_invitation_form(invite_email, send_messages=True) invite_user_page.send_invitation() invite_user_page.sign_out() invite_user_page.wait_until_url_is(base_url) # next part of interaction is from point of view of invitee # i.e. after visting invite_link we'll be registering using invite_email # but use same mobile number and password as profile invite_link = get_link(profile, profile.invitation_template_id, invite_email) driver.get(invite_link) register_from_invite_page = RegisterFromInvite(driver) register_from_invite_page.fill_registration_form(invited_user_name, profile) register_from_invite_page.click_continue() do_verify(driver, profile) dashboard_page = DashboardPage(driver) service_id = dashboard_page.get_service_id() dashboard_page.go_to_dashboard_for_service(service_id) assert dashboard_page.h2_is_service_name(profile.service_name) dashboard_page.sign_out() dashboard_page.wait_until_url_is(base_url)