diff options
author | Michael Kozono <mkozono@gmail.com> | 2017-07-20 22:54:29 +0300 |
---|---|---|
committer | Michael Kozono <mkozono@gmail.com> | 2017-08-15 19:05:31 +0300 |
commit | 1e8400f5fe423121b686e4845b8d8640f0220475 (patch) | |
tree | cfc19d59076ed3543e26aebb88378a9a802741c5 | |
parent | dab1c7e61d8e020b4e57ca6cca887edf355c1026 (diff) |
Replace requester with access_request_user
Refactoring. The word requester used to be overloaded. It could mean a Member or a User. I am clarifying each usage in preparation for splitting AccessRequest out of Member.
All relevant spec files I’ve found have passed.
-rw-r--r-- | app/mailers/emails/members.rb | 4 | ||||
-rw-r--r-- | spec/controllers/groups/group_members_controller_spec.rb | 2 | ||||
-rw-r--r-- | spec/controllers/projects/project_members_controller_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/projects/members/group_members_spec.rb | 22 | ||||
-rw-r--r-- | spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb | 2 | ||||
-rw-r--r-- | spec/finders/access_requests_finder_spec.rb | 8 | ||||
-rw-r--r-- | spec/helpers/members_helper_spec.rb | 20 | ||||
-rw-r--r-- | spec/models/group_spec.rb | 24 | ||||
-rw-r--r-- | spec/models/member_spec.rb | 10 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 16 | ||||
-rw-r--r-- | spec/models/project_team_spec.rb | 24 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 4 | ||||
-rw-r--r-- | spec/requests/api/access_requests_spec.rb | 52 | ||||
-rw-r--r-- | spec/requests/api/members_spec.rb | 32 | ||||
-rw-r--r-- | spec/requests/api/v3/members_spec.rb | 32 | ||||
-rw-r--r-- | spec/services/members/approve_access_request_service_spec.rb | 18 |
16 files changed, 136 insertions, 136 deletions
diff --git a/app/mailers/emails/members.rb b/app/mailers/emails/members.rb index d76c61c369f..c7efd809bbf 100644 --- a/app/mailers/emails/members.rb +++ b/app/mailers/emails/members.rb @@ -33,9 +33,9 @@ module Emails def member_access_denied_email(member_source_type, source_id, user_id) @member_source_type = member_source_type @member_source = member_source_class.find(source_id) - requester = User.find(user_id) + access_request_user = User.find(user_id) - mail(to: requester.notification_email, + mail(to: access_request_user.notification_email, subject: subject("Access to the #{member_source.human_name} #{member_source.model_name.singular} was denied")) end diff --git a/spec/controllers/groups/group_members_controller_spec.rb b/spec/controllers/groups/group_members_controller_spec.rb index 304c02bc503..afb7684e567 100644 --- a/spec/controllers/groups/group_members_controller_spec.rb +++ b/spec/controllers/groups/group_members_controller_spec.rb @@ -161,7 +161,7 @@ describe Groups::GroupMembersController do end end - context 'and is a requester' do + context 'and has requested access' do before do group.request_access(user) end diff --git a/spec/controllers/projects/project_members_controller_spec.rb b/spec/controllers/projects/project_members_controller_spec.rb index 2c49be35a47..efd4723ba9c 100644 --- a/spec/controllers/projects/project_members_controller_spec.rb +++ b/spec/controllers/projects/project_members_controller_spec.rb @@ -172,7 +172,7 @@ describe Projects::ProjectMembersController do end end - context 'and is a requester' do + context 'and has requested access' do before do project.request_access(user) end diff --git a/spec/features/projects/members/group_members_spec.rb b/spec/features/projects/members/group_members_spec.rb index c140fece41d..4b6eba6b514 100644 --- a/spec/features/projects/members/group_members_spec.rb +++ b/spec/features/projects/members/group_members_spec.rb @@ -7,8 +7,8 @@ feature 'Projects members' do let(:project) { create(:project, :public, :access_requestable, creator: user, group: group) } let(:project_invitee) { create(:project_member, project: project, invite_token: '123', invite_email: 'test1@abc.com', user: nil) } let(:group_invitee) { create(:group_member, group: group, invite_token: '123', invite_email: 'test2@abc.com', user: nil) } - let(:project_requester) { create(:user) } - let(:group_requester) { create(:user) } + let(:project_access_request_user) { create(:user) } + let(:group_access_request_user) { create(:user) } background do project.team << [developer, :developer] @@ -51,30 +51,30 @@ feature 'Projects members' do end end - context 'with a group requester' do + context 'with a user that has requested access to the group' do before do - group.request_access(group_requester) + group.request_access(group_access_request_user) visit project_settings_members_path(project) end scenario 'does not appear in the project members page' do page.within first('.content-list') do - expect(page).not_to have_content(group_requester.name) + expect(page).not_to have_content(group_access_request_user.name) end end end - context 'with a group and a project requesters' do + context 'with users that have requested access to the group and the project' do before do - group.request_access(group_requester) - project.request_access(project_requester) + group.request_access(group_access_request_user) + project.request_access(project_access_request_user) visit project_settings_members_path(project) end - scenario 'shows the project requester, the project developer, and the group owner' do + scenario 'shows the user that requested access to the project, the project developer, and the group owner' do page.within first('.content-list') do - expect(page).to have_content(project_requester.name) - expect(page).not_to have_content(group_requester.name) + expect(page).to have_content(project_access_request_user.name) + expect(page).not_to have_content(group_access_request_user.name) end page.within all('.content-list').last do diff --git a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb index c8988aa63a7..eb787bf3c9b 100644 --- a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb +++ b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb @@ -14,7 +14,7 @@ feature 'Projects > Members > Group requester cannot request access to project', visit project_path(project) end - scenario 'group requester does not see the request access / withdraw access request button' do + scenario 'a user that has requested access to a group does not see its project request access / withdraw access request button' do expect(page).not_to have_content 'Request Access' expect(page).not_to have_content 'Withdraw Access Request' end diff --git a/spec/finders/access_requests_finder_spec.rb b/spec/finders/access_requests_finder_spec.rb index bc4aad14aca..c976c6f9413 100644 --- a/spec/finders/access_requests_finder_spec.rb +++ b/spec/finders/access_requests_finder_spec.rb @@ -2,17 +2,17 @@ require 'spec_helper' describe AccessRequestsFinder do let(:user) { create(:user) } - let(:access_requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:project) do create(:project, :public, :access_requestable) do |project| - project.request_access(access_requester) + project.request_access(access_request_user) end end let(:group) do create(:group, :public, :access_requestable) do |group| - group.request_access(access_requester) + group.request_access(access_request_user) end end @@ -22,7 +22,7 @@ describe AccessRequestsFinder do expect(access_requests.size).to eq(1) expect(access_requests.first).to be_a "#{source.class}Member".constantize - expect(access_requests.first.user).to eq(access_requester) + expect(access_requests.first.user).to eq(access_request_user) end end diff --git a/spec/helpers/members_helper_spec.rb b/spec/helpers/members_helper_spec.rb index 1e6675b6843..fcfc11466d5 100644 --- a/spec/helpers/members_helper_spec.rb +++ b/spec/helpers/members_helper_spec.rb @@ -10,34 +10,34 @@ describe MembersHelper do end describe '#remove_member_message' do - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:project) { create(:project, :public, :access_requestable) } let(:project_member) { build(:project_member, project: project) } let(:project_member_invite) { build(:project_member, project: project).tap { |m| m.generate_invite_token! } } - let(:project_access_request) { project.request_access(requester) } + let(:project_access_request) { project.request_access(access_request_user) } let(:group) { create(:group, :access_requestable) } let(:group_member) { build(:group_member, group: group) } let(:group_member_invite) { build(:group_member, group: group).tap { |m| m.generate_invite_token! } } - let(:group_access_request) { group.request_access(requester) } + let(:group_access_request) { group.request_access(access_request_user) } it { expect(remove_member_message(project_member)).to eq "Are you sure you want to remove #{project_member.user.name} from the #{project.name_with_namespace} project?" } it { expect(remove_member_message(project_member_invite)).to eq "Are you sure you want to revoke the invitation for #{project_member_invite.invite_email} to join the #{project.name_with_namespace} project?" } - it { expect(remove_member_message(project_access_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{project.name_with_namespace} project?" } - it { expect(remove_member_message(project_access_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{project.name_with_namespace} project?" } + it { expect(remove_member_message(project_access_request)).to eq "Are you sure you want to deny #{access_request_user.name}'s request to join the #{project.name_with_namespace} project?" } + it { expect(remove_member_message(project_access_request, user: access_request_user)).to eq "Are you sure you want to withdraw your access request for the #{project.name_with_namespace} project?" } it { expect(remove_member_message(group_member)).to eq "Are you sure you want to remove #{group_member.user.name} from the #{group.name} group?" } it { expect(remove_member_message(group_member_invite)).to eq "Are you sure you want to revoke the invitation for #{group_member_invite.invite_email} to join the #{group.name} group?" } - it { expect(remove_member_message(group_access_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{group.name} group?" } - it { expect(remove_member_message(group_access_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{group.name} group?" } + it { expect(remove_member_message(group_access_request)).to eq "Are you sure you want to deny #{access_request_user.name}'s request to join the #{group.name} group?" } + it { expect(remove_member_message(group_access_request, user: access_request_user)).to eq "Are you sure you want to withdraw your access request for the #{group.name} group?" } end describe '#remove_member_title' do - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:project) { create(:project, :public, :access_requestable) } let(:project_member) { build(:project_member, project: project) } - let(:project_access_request) { project.request_access(requester) } + let(:project_access_request) { project.request_access(access_request_user) } let(:group) { create(:group, :access_requestable) } let(:group_member) { build(:group_member, group: group) } - let(:group_access_request) { group.request_access(requester) } + let(:group_access_request) { group.request_access(access_request_user) } it { expect(remove_member_title(project_member)).to eq 'Remove user from project' } it { expect(remove_member_title(project_access_request)).to eq 'Deny access request from project' } diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 7ebf4e32e8e..39bf733f4bd 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -18,28 +18,28 @@ describe Group do it { is_expected.to have_one(:chat_team) } describe '#members & #access_requests' do - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:developer) { create(:user) } before do - group.request_access(requester) + group.request_access(access_request_user) group.add_developer(developer) end describe '#members' do - it 'includes members and exclude requesters' do + it 'includes members and exclude users who requested access' do member_user_ids = group.members.pluck(:user_id) expect(member_user_ids).to include(developer.id) - expect(member_user_ids).not_to include(requester.id) + expect(member_user_ids).not_to include(access_request_user.id) end end describe '#access_requests' do - it 'includes requesters and excludes members' do - requester_user_ids = group.access_requests.pluck(:user_id) + it 'includes users who requested access, and excludes members' do + access_request_user_ids = group.access_requests.pluck(:user_id) - expect(requester_user_ids).to include(requester.id) - expect(requester_user_ids).not_to include(developer.id) + expect(access_request_user_ids).to include(access_request_user.id) + expect(access_request_user_ids).not_to include(developer.id) end end end @@ -244,7 +244,7 @@ describe Group do it { expect(group.has_owner?(@members[:developer])).to be_falsey } it { expect(group.has_owner?(@members[:reporter])).to be_falsey } it { expect(group.has_owner?(@members[:guest])).to be_falsey } - it { expect(group.has_owner?(@members[:requester])).to be_falsey } + it { expect(group.has_owner?(@members[:access_request_user])).to be_falsey } it { expect(group.has_owner?(nil)).to be_falsey } end @@ -259,7 +259,7 @@ describe Group do it { expect(group.has_master?(@members[:developer])).to be_falsey } it { expect(group.has_master?(@members[:reporter])).to be_falsey } it { expect(group.has_master?(@members[:guest])).to be_falsey } - it { expect(group.has_master?(@members[:requester])).to be_falsey } + it { expect(group.has_master?(@members[:access_request_user])).to be_falsey } it { expect(group.has_master?(nil)).to be_falsey } end @@ -328,7 +328,7 @@ describe Group do developer: create(:user), reporter: create(:user), guest: create(:user), - requester: create(:user) + access_request_user: create(:user) } group.add_user(members[:owner], GroupMember::OWNER) @@ -336,7 +336,7 @@ describe Group do group.add_user(members[:developer], GroupMember::DEVELOPER) group.add_user(members[:reporter], GroupMember::REPORTER) group.add_user(members[:guest], GroupMember::GUEST) - group.request_access(members[:requester]) + group.request_access(members[:access_request_user]) members end diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb index b7d3f3f5df5..34626cda7e6 100644 --- a/spec/models/member_spec.rb +++ b/spec/models/member_spec.rb @@ -247,7 +247,7 @@ describe Member do end context 'when called with a user object' do - context 'when the user is not a requester' do + context 'when the user has not requested access' do it 'adds the user as a member' do expect(source.users).not_to include(user) @@ -257,7 +257,7 @@ describe Member do end end - context 'when the user is a requester' do + context 'when the user has requested access' do before do source.request_access(user) end @@ -305,12 +305,12 @@ describe Member do expect(source.users.reload).to include(user) end - context 'when called with a requester user object' do + context 'when called with a user who requested access' do before do source.request_access(user) end - it 'adds the requester as a member' do + it 'adds the user as a member' do expect(source.users).not_to include(user) expect(source.access_requests.exists?(user_id: user)).to be_truthy @@ -332,7 +332,7 @@ describe Member do expect(member).not_to be_persisted end - context 'when called with a requester user object' do + context 'when called with a user who requested access' do before do source.request_access(user) end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 15c6c1bfc25..5742bbd9c75 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -83,28 +83,28 @@ describe Project do describe '#members & #access_requests' do let(:project) { create(:project, :public, :access_requestable) } - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:developer) { create(:user) } before do - project.request_access(requester) + project.request_access(access_request_user) project.team << [developer, :developer] end describe '#members' do - it 'includes members and exclude requesters' do + it 'includes members and exclude users who requested access' do member_user_ids = project.members.pluck(:user_id) expect(member_user_ids).to include(developer.id) - expect(member_user_ids).not_to include(requester.id) + expect(member_user_ids).not_to include(access_request_user.id) end end describe '#access_requests' do - it 'includes requesters and excludes members' do - requester_user_ids = project.access_requests.pluck(:user_id) + it 'includes users who requested access, and excludes members' do + access_request_user_ids = project.access_requests.pluck(:user_id) - expect(requester_user_ids).to include(requester.id) - expect(requester_user_ids).not_to include(developer.id) + expect(access_request_user_ids).to include(access_request_user.id) + expect(access_request_user_ids).not_to include(developer.id) end end end diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb index 314824b32da..21bdd79741c 100644 --- a/spec/models/project_team_spec.rb +++ b/spec/models/project_team_spec.rb @@ -142,39 +142,39 @@ describe ProjectTeam do create(:project, :public, :access_requestable) end - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } before do project.add_master(master) project.add_reporter(reporter) project.add_guest(guest) - project.request_access(requester) + project.request_access(access_request_user) end it { expect(project.team.find_member(master.id)).to be_a(ProjectMember) } it { expect(project.team.find_member(reporter.id)).to be_a(ProjectMember) } it { expect(project.team.find_member(guest.id)).to be_a(ProjectMember) } it { expect(project.team.find_member(nonmember.id)).to be_nil } - it { expect(project.team.find_member(requester.id)).to be_nil } + it { expect(project.team.find_member(access_request_user.id)).to be_nil } end context 'group project' do let(:group) { create(:group, :access_requestable) } let(:project) { create(:project, group: group) } - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } before do group.add_master(master) group.add_reporter(reporter) group.add_guest(guest) - group.request_access(requester) + group.request_access(access_request_user) end it { expect(project.team.find_member(master.id)).to be_a(GroupMember) } it { expect(project.team.find_member(reporter.id)).to be_a(GroupMember) } it { expect(project.team.find_member(guest.id)).to be_a(GroupMember) } it { expect(project.team.find_member(nonmember.id)).to be_nil } - it { expect(project.team.find_member(requester.id)).to be_nil } + it { expect(project.team.find_member(access_request_user.id)).to be_nil } end end @@ -201,7 +201,7 @@ describe ProjectTeam do end describe '#max_member_access' do - let(:requester) { create(:user) } + let(:access_request_user) { create(:user) } context 'personal project' do let(:project) do @@ -213,14 +213,14 @@ describe ProjectTeam do project.add_master(master) project.add_reporter(reporter) project.add_guest(guest) - project.request_access(requester) + project.request_access(access_request_user) end it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::MASTER) } it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) } it { expect(project.team.max_member_access(guest.id)).to eq(Gitlab::Access::GUEST) } it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) } - it { expect(project.team.max_member_access(requester.id)).to eq(Gitlab::Access::NO_ACCESS) } + it { expect(project.team.max_member_access(access_request_user.id)).to eq(Gitlab::Access::NO_ACCESS) } end context 'when project is shared with group' do @@ -237,7 +237,7 @@ describe ProjectTeam do it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::DEVELOPER) } it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) } it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) } - it { expect(project.team.max_member_access(requester.id)).to eq(Gitlab::Access::NO_ACCESS) } + it { expect(project.team.max_member_access(access_request_user.id)).to eq(Gitlab::Access::NO_ACCESS) } context 'but share_with_group_lock is true' do before do @@ -260,14 +260,14 @@ describe ProjectTeam do group.add_master(master) group.add_reporter(reporter) group.add_guest(guest) - group.request_access(requester) + group.request_access(access_request_user) end it { expect(project.team.max_member_access(master.id)).to eq(Gitlab::Access::MASTER) } it { expect(project.team.max_member_access(reporter.id)).to eq(Gitlab::Access::REPORTER) } it { expect(project.team.max_member_access(guest.id)).to eq(Gitlab::Access::GUEST) } it { expect(project.team.max_member_access(nonmember.id)).to eq(Gitlab::Access::NO_ACCESS) } - it { expect(project.team.max_member_access(requester.id)).to eq(Gitlab::Access::NO_ACCESS) } + it { expect(project.team.max_member_access(access_request_user.id)).to eq(Gitlab::Access::NO_ACCESS) } end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 97bb91a6ac8..1ae3d6bde73 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -68,7 +68,7 @@ describe User do end describe '#group_members' do - it 'does not include group memberships for which user is a requester' do + it 'does not include group memberships if the user has an access request' do user = create(:user) group = create(:group, :public, :access_requestable) group.request_access(user) @@ -78,7 +78,7 @@ describe User do end describe '#project_members' do - it 'does not include project memberships for which user is a requester' do + it 'does not include project memberships if the user has an access request' do user = create(:user) project = create(:project, :public, :access_requestable) project.request_access(user) diff --git a/spec/requests/api/access_requests_spec.rb b/spec/requests/api/access_requests_spec.rb index c9ab3fe908e..6f5d5205b54 100644 --- a/spec/requests/api/access_requests_spec.rb +++ b/spec/requests/api/access_requests_spec.rb @@ -3,14 +3,14 @@ require 'spec_helper' describe API::AccessRequests do let(:master) { create(:user) } let(:developer) { create(:user) } - let(:access_requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:stranger) { create(:user) } let(:project) do create(:project, :public, :access_requestable, creator_id: master.id, namespace: master.namespace) do |project| project.team << [developer, :developer] project.team << [master, :master] - project.request_access(access_requester) + project.request_access(access_request_user) end end @@ -18,7 +18,7 @@ describe API::AccessRequests do create(:group, :public, :access_requestable) do |group| group.add_developer(developer) group.add_owner(master) - group.request_access(access_requester) + group.request_access(access_request_user) end end @@ -29,7 +29,7 @@ describe API::AccessRequests do end context 'when authenticated as a non-master/owner' do - %i[developer access_requester stranger].each do |type| + %i[developer access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) @@ -75,10 +75,10 @@ describe API::AccessRequests do end end - context 'when authenticated as an access requester' do + context 'when authenticated as a user who requested access' do it 'returns 400' do expect do - post api("/#{source_type.pluralize}/#{source.id}/access_requests", access_requester) + post api("/#{source_type.pluralize}/#{source.id}/access_requests", access_request_user) expect(response).to have_http_status(400) end.not_to change { source.access_requests.count } @@ -125,15 +125,15 @@ describe API::AccessRequests do shared_examples 'PUT /:sources/:id/access_requests/:user_id/approve' do |source_type| context "with :sources == #{source_type.pluralize}" do it_behaves_like 'a 404 response when source is private' do - let(:route) { put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", stranger) } + let(:route) { put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}/approve", stranger) } end context 'when authenticated as a non-master/owner' do - %i[developer access_requester stranger].each do |type| + %i[developer access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) - put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", user) + put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}/approve", user) expect(response).to have_http_status(403) end @@ -144,24 +144,24 @@ describe API::AccessRequests do context 'when authenticated as a master/owner' do it 'returns 201' do expect do - put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}/approve", master), + put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}/approve", master), access_level: Member::MASTER expect(response).to have_http_status(201) end.to change { source.members.count }.by(1) # User attributes - expect(json_response['id']).to eq(access_requester.id) - expect(json_response['name']).to eq(access_requester.name) - expect(json_response['username']).to eq(access_requester.username) - expect(json_response['state']).to eq(access_requester.state) - expect(json_response['avatar_url']).to eq(access_requester.avatar_url) - expect(json_response['web_url']).to eq(Gitlab::Routing.url_helpers.user_url(access_requester)) + expect(json_response['id']).to eq(access_request_user.id) + expect(json_response['name']).to eq(access_request_user.name) + expect(json_response['username']).to eq(access_request_user.username) + expect(json_response['state']).to eq(access_request_user.state) + expect(json_response['avatar_url']).to eq(access_request_user.avatar_url) + expect(json_response['web_url']).to eq(Gitlab::Routing.url_helpers.user_url(access_request_user)) # Member attributes expect(json_response['access_level']).to eq(Member::MASTER) end - context 'user_id does not match an existing access requester' do + context 'user_id does not match any user that has requested access' do it 'returns 404' do expect do put api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}/approve", master) @@ -177,7 +177,7 @@ describe API::AccessRequests do shared_examples 'DELETE /:sources/:id/access_requests/:user_id' do |source_type| context "with :sources == #{source_type.pluralize}" do it_behaves_like 'a 404 response when source is private' do - let(:route) { delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", stranger) } + let(:route) { delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}", stranger) } end context 'when authenticated as a non-master/owner' do @@ -185,7 +185,7 @@ describe API::AccessRequests do context "as a #{type}" do it 'returns 403' do user = public_send(type) - delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", user) + delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}", user) expect(response).to have_http_status(403) end @@ -193,10 +193,10 @@ describe API::AccessRequests do end end - context 'when authenticated as the access requester' do - it 'deletes the access requester' do + context 'when authenticated as the user who requested access' do + it 'deletes the access request' do expect do - delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", access_requester) + delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}", access_request_user) expect(response).to have_http_status(204) end.to change { source.access_requests.count }.by(-1) @@ -204,15 +204,15 @@ describe API::AccessRequests do end context 'when authenticated as a master/owner' do - it 'deletes the access requester' do + it 'deletes the access request' do expect do - delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_requester.id}", master) + delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{access_request_user.id}", master) expect(response).to have_http_status(204) end.to change { source.access_requests.count }.by(-1) end - context 'user_id matches a member, not an access requester' do + context 'user_id matches a member, not a user who requested access' do it 'returns 404' do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{developer.id}", master) @@ -222,7 +222,7 @@ describe API::AccessRequests do end end - context 'user_id does not match an existing access requester' do + context 'user_id does not match any user who requested access' do it 'returns 404' do expect do delete api("/#{source_type.pluralize}/#{source.id}/access_requests/#{stranger.id}", master) diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb index 72ac096915d..b86e9722d99 100644 --- a/spec/requests/api/members_spec.rb +++ b/spec/requests/api/members_spec.rb @@ -3,14 +3,14 @@ require 'spec_helper' describe API::Members do let(:master) { create(:user, username: 'master_user') } let(:developer) { create(:user) } - let(:access_requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:stranger) { create(:user) } let(:project) do create(:project, :public, :access_requestable, creator_id: master.id, namespace: master.namespace) do |project| project.team << [developer, :developer] project.team << [master, :master] - project.request_access(access_requester) + project.request_access(access_request_user) end end @@ -18,7 +18,7 @@ describe API::Members do create(:group, :public, :access_requestable) do |group| group.add_developer(developer) group.add_owner(master) - group.request_access(access_requester) + group.request_access(access_request_user) end end @@ -28,7 +28,7 @@ describe API::Members do let(:route) { get api("/#{source_type.pluralize}/#{source.id}/members", stranger) } end - %i[master developer access_requester stranger].each do |type| + %i[master developer access_request_user stranger].each do |type| context "when authenticated as a #{type}" do it 'returns 200' do user = public_send(type) @@ -75,7 +75,7 @@ describe API::Members do end context 'when authenticated as a non-member' do - %i[access_requester stranger].each do |type| + %i[access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 200' do user = public_send(type) @@ -104,17 +104,17 @@ describe API::Members do it_behaves_like 'a 404 response when source is private' do let(:route) do post api("/#{source_type.pluralize}/#{source.id}/members", stranger), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER end end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger developer].each do |type| + %i[access_request_user stranger developer].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) post api("/#{source_type.pluralize}/#{source.id}/members", user), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER expect(response).to have_http_status(403) end @@ -123,16 +123,16 @@ describe API::Members do end context 'when authenticated as a master/owner' do - context 'and new member is already a requester' do - it 'transforms the requester into a proper member' do + context 'and the new member has already requested access' do + it 'grants the user access' do expect do post api("/#{source_type.pluralize}/#{source.id}/members", master), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER expect(response).to have_http_status(201) end.to change { source.members.count }.by(1) expect(source.access_requests.count).to eq(0) - expect(json_response['id']).to eq(access_requester.id) + expect(json_response['id']).to eq(access_request_user.id) expect(json_response['access_level']).to eq(Member::MASTER) end end @@ -190,7 +190,7 @@ describe API::Members do end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger developer].each do |type| + %i[access_request_user stranger developer].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) @@ -244,7 +244,7 @@ describe API::Members do end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger].each do |type| + %i[access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) @@ -267,10 +267,10 @@ describe API::Members do end context 'when authenticated as a master/owner' do - context 'and member is a requester' do + context 'and the user is not a member but has requested access' do it 'returns 404' do expect do - delete api("/#{source_type.pluralize}/#{source.id}/members/#{access_requester.id}", master) + delete api("/#{source_type.pluralize}/#{source.id}/members/#{access_request_user.id}", master) expect(response).to have_http_status(404) end.not_to change { source.access_requests.count } diff --git a/spec/requests/api/v3/members_spec.rb b/spec/requests/api/v3/members_spec.rb index 44fca784e6a..e731e028a50 100644 --- a/spec/requests/api/v3/members_spec.rb +++ b/spec/requests/api/v3/members_spec.rb @@ -3,14 +3,14 @@ require 'spec_helper' describe API::V3::Members do let(:master) { create(:user, username: 'master_user') } let(:developer) { create(:user) } - let(:access_requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:stranger) { create(:user) } let(:project) do create(:project, :public, :access_requestable, creator_id: master.id, namespace: master.namespace) do |project| project.team << [developer, :developer] project.team << [master, :master] - project.request_access(access_requester) + project.request_access(access_request_user) end end @@ -18,7 +18,7 @@ describe API::V3::Members do create(:group, :public, :access_requestable) do |group| group.add_developer(developer) group.add_owner(master) - group.request_access(access_requester) + group.request_access(access_request_user) end end @@ -28,7 +28,7 @@ describe API::V3::Members do let(:route) { get v3_api("/#{source_type.pluralize}/#{source.id}/members", stranger) } end - %i[master developer access_requester stranger].each do |type| + %i[master developer access_request_user stranger].each do |type| context "when authenticated as a #{type}" do it 'returns 200' do user = public_send(type) @@ -68,7 +68,7 @@ describe API::V3::Members do end context 'when authenticated as a non-member' do - %i[access_requester stranger].each do |type| + %i[access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 200' do user = public_send(type) @@ -97,17 +97,17 @@ describe API::V3::Members do it_behaves_like 'a 404 response when source is private' do let(:route) do post v3_api("/#{source_type.pluralize}/#{source.id}/members", stranger), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER end end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger developer].each do |type| + %i[access_request_user stranger developer].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) post v3_api("/#{source_type.pluralize}/#{source.id}/members", user), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER expect(response).to have_http_status(403) end @@ -116,16 +116,16 @@ describe API::V3::Members do end context 'when authenticated as a master/owner' do - context 'and new member is already a requester' do - it 'transforms the requester into a proper member' do + context 'and the new member has already requested access' do + it 'grants the user access' do expect do post v3_api("/#{source_type.pluralize}/#{source.id}/members", master), - user_id: access_requester.id, access_level: Member::MASTER + user_id: access_request_user.id, access_level: Member::MASTER expect(response).to have_http_status(201) end.to change { source.members.count }.by(1) expect(source.access_requests.count).to eq(0) - expect(json_response['id']).to eq(access_requester.id) + expect(json_response['id']).to eq(access_request_user.id) expect(json_response['access_level']).to eq(Member::MASTER) end end @@ -183,7 +183,7 @@ describe API::V3::Members do end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger developer].each do |type| + %i[access_request_user stranger developer].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) @@ -237,7 +237,7 @@ describe API::V3::Members do end context 'when authenticated as a non-member or member with insufficient rights' do - %i[access_requester stranger].each do |type| + %i[access_request_user stranger].each do |type| context "as a #{type}" do it 'returns 403' do user = public_send(type) @@ -260,10 +260,10 @@ describe API::V3::Members do end context 'when authenticated as a master/owner' do - context 'and member is a requester' do + context 'and the user is not a member but has requested access' do it "returns #{source_type == 'project' ? 200 : 404}" do expect do - delete v3_api("/#{source_type.pluralize}/#{source.id}/members/#{access_requester.id}", master) + delete v3_api("/#{source_type.pluralize}/#{source.id}/members/#{access_request_user.id}", master) expect(response).to have_http_status(source_type == 'project' ? 200 : 404) end.not_to change { source.access_requests.count } diff --git a/spec/services/members/approve_access_request_service_spec.rb b/spec/services/members/approve_access_request_service_spec.rb index 2eda4ed8d4d..b5cbaf7231b 100644 --- a/spec/services/members/approve_access_request_service_spec.rb +++ b/spec/services/members/approve_access_request_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe Members::ApproveAccessRequestService do let(:user) { create(:user) } - let(:access_requester) { create(:user) } + let(:access_request_user) { create(:user) } let(:project) { create(:project, :public, :access_requestable) } let(:group) { create(:group, :public, :access_requestable) } let(:opts) { {} } @@ -32,7 +32,7 @@ describe Members::ApproveAccessRequestService do end context 'with a custom access level' do - let(:params2) { params.merge(user_id: access_requester.id, access_level: Gitlab::Access::MASTER) } + let(:params2) { params.merge(user_id: access_request_user.id, access_level: Gitlab::Access::MASTER) } it 'returns a ProjectMember with the custom access level' do member = described_class.new(source, user, params2).execute(opts) @@ -42,7 +42,7 @@ describe Members::ApproveAccessRequestService do end end - context 'when no access requester are found' do + context 'when there are no users that have requested access' do let(:params) { { user_id: 42 } } it_behaves_like 'a service raising ActiveRecord::RecordNotFound' do @@ -54,12 +54,12 @@ describe Members::ApproveAccessRequestService do end end - context 'when an access requester is found' do + context 'when users have requested access' do before do - project.request_access(access_requester) - group.request_access(access_requester) + project.request_access(access_request_user) + group.request_access(access_request_user) end - let(:params) { { user_id: access_requester.id } } + let(:params) { { user_id: access_request_user.id } } context 'when current user is nil' do let(:user) { nil } @@ -99,7 +99,7 @@ describe Members::ApproveAccessRequestService do end context 'and :force param is true' do - let(:params) { { user_id: access_requester.id, force: true } } + let(:params) { { user_id: access_request_user.id, force: true } } it_behaves_like 'a service raising Gitlab::Access::AccessDeniedError' do let(:source) { project } @@ -136,7 +136,7 @@ describe Members::ApproveAccessRequestService do end context 'when given a :id' do - let(:params) { { id: project.access_requests.find_by!(user_id: access_requester.id).id } } + let(:params) { { id: project.access_requests.find_by!(user_id: access_request_user.id).id } } it_behaves_like 'a service approving an access request' do let(:source) { project } |