diff options
Diffstat (limited to 'spec/helpers/members_helper_spec.rb')
-rw-r--r-- | spec/helpers/members_helper_spec.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/helpers/members_helper_spec.rb b/spec/helpers/members_helper_spec.rb index e94eb63fc2c..4a3a623ce77 100644 --- a/spec/helpers/members_helper_spec.rb +++ b/spec/helpers/members_helper_spec.rb @@ -74,4 +74,37 @@ RSpec.describe MembersHelper do expect(localized_tasks_to_be_done_choices).to include(*MemberTask::TASKS.keys) end end + + describe '#member_request_access_link' do + let(:project) { create(:project) } + let(:group) { create(:group) } + let(:project_member) { create(:project_member, :reporter, project: project) } + let(:group_member) { create(:group_member, :reporter, group: group) } + + it 'returns request link for project members' do + user = project_member.user + source = project_member.source + link = member_request_access_link(project_member) + + user_link = link_to user.name, user, class: :highlight + access_level = content_tag :span, project_member.human_access, class: :highlight + source_link = link_to source.human_name, polymorphic_url([project_member.source, :members]), class: :highlight + source_type = source.model_name.singular + + expect(link).to eq "#{user_link} requested #{access_level} access to the #{source_link} #{source_type}." + end + + it 'returns the request link for group members' do + user = group_member.user + source = group_member.source + link = member_request_access_link(group_member) + + user_link = link_to user.name, user, class: :highlight + access_level = content_tag :span, group_member.human_access, class: :highlight + source_link = link_to source.human_name, polymorphic_url([group_member.source, :members]), class: :highlight + source_type = source.model_name.singular + + expect(link).to eq "#{user_link} requested #{access_level} access to the #{source_link} #{source_type}." + end + end end |