debian-mirror-gitlab/spec/support/helpers/features/invite_members_modal_helper.rb
2022-08-13 15:12:31 +05:30

106 lines
2.7 KiB
Ruby

# frozen_string_literal: true
module Spec
module Support
module Helpers
module Features
module InviteMembersModalHelper
def invite_member(names, role: 'Guest', expires_at: nil, refresh: true)
click_on 'Invite members'
page.within invite_modal_selector do
select_members(names)
choose_options(role, expires_at)
click_button 'Invite'
end
page.refresh if refresh
end
def input_invites(names)
click_on 'Invite members'
page.within invite_modal_selector do
select_members(names)
end
end
def select_members(names)
Array.wrap(names).each do |name|
find(member_dropdown_selector).set(name)
wait_for_requests
click_button name
end
end
def invite_group(name, role: 'Guest', expires_at: nil)
click_on 'Invite a group'
click_on 'Select a group'
wait_for_requests
click_button name
choose_options(role, expires_at)
click_button 'Invite'
page.refresh
end
def choose_options(role, expires_at)
unless role == 'Guest'
click_button 'Guest'
wait_for_requests
click_button role
end
fill_in 'YYYY-MM-DD', with: expires_at.strftime('%Y-%m-%d') if expires_at
end
def click_groups_tab
expect(page).to have_link 'Groups'
click_link "Groups"
end
def group_dropdown_selector
'[data-testid="group-select-dropdown"]'
end
def member_dropdown_selector
'[data-testid="members-token-select-input"]'
end
def invite_modal_selector
'[data-testid="invite-modal"]'
end
def member_token_error_selector(id)
"[data-testid='error-icon-#{id}']"
end
def member_token_avatar_selector
"[data-testid='token-avatar']"
end
def member_token_selector(id)
"[data-token-id='#{id}']"
end
def remove_token(id)
page.within member_token_selector(id) do
find('[data-testid="close-icon"]').click
end
end
def expect_to_have_group(group)
expect(page).to have_selector("[entity-id='#{group.id}']")
end
def expect_not_to_have_group(group)
expect(page).not_to have_selector("[entity-id='#{group.id}']")
end
end
end
end
end
end