diff options
Diffstat (limited to 'spec/controllers/projects/project_members_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/project_members_controller_spec.rb | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/spec/controllers/projects/project_members_controller_spec.rb b/spec/controllers/projects/project_members_controller_spec.rb index d8ef95cf11a..20a114bbe8c 100644 --- a/spec/controllers/projects/project_members_controller_spec.rb +++ b/spec/controllers/projects/project_members_controller_spec.rb @@ -147,137 +147,6 @@ RSpec.describe Projects::ProjectMembersController do end end - describe 'POST create' do - let_it_be(:project_user) { create(:user) } - - before do - sign_in(user) - end - - context 'when user does not have enough rights' do - before do - project.add_developer(user) - end - - it 'returns 404', :aggregate_failures do - post :create, params: { - namespace_id: project.namespace, - project_id: project, - user_ids: project_user.id, - access_level: Gitlab::Access::GUEST - } - - expect(response).to have_gitlab_http_status(:not_found) - expect(project.users).not_to include project_user - end - end - - context 'when user has enough rights' do - before do - project.add_maintainer(user) - end - - it 'adds user to members', :aggregate_failures, :snowplow do - post :create, params: { - namespace_id: project.namespace, - project_id: project, - user_ids: project_user.id, - access_level: Gitlab::Access::GUEST - } - - expect(controller).to set_flash.to 'Users were successfully added.' - expect(response).to redirect_to(project_project_members_path(project)) - expect(project.users).to include project_user - expect_snowplow_event( - category: 'Members::CreateService', - action: 'create_member', - label: 'project-members-page', - property: 'existing_user', - user: user - ) - end - - it 'adds no user to members', :aggregate_failures do - expect_next_instance_of(Members::CreateService) do |instance| - expect(instance).to receive(:execute).and_return(status: :failure, message: 'Message') - end - - post :create, params: { - namespace_id: project.namespace, - project_id: project, - user_ids: '', - access_level: Gitlab::Access::GUEST - } - - expect(controller).to set_flash.to 'Message' - expect(response).to redirect_to(project_project_members_path(project)) - end - end - - context 'adding project bot' do - let_it_be(:project_bot) { create(:user, :project_bot) } - - before do - project.add_maintainer(user) - - unrelated_project = create(:project) - unrelated_project.add_maintainer(project_bot) - end - - it 'returns error', :aggregate_failures do - post :create, params: { - namespace_id: project.namespace, - project_id: project, - user_ids: project_bot.id, - access_level: Gitlab::Access::GUEST - } - - expect(flash[:alert]).to include('project bots cannot be added to other groups / projects') - expect(response).to redirect_to(project_project_members_path(project)) - end - end - - context 'access expiry date' do - before do - project.add_maintainer(user) - end - - subject do - post :create, params: { - namespace_id: project.namespace, - project_id: project, - user_ids: project_user.id, - access_level: Gitlab::Access::GUEST, - expires_at: expires_at - } - end - - context 'when set to a date in the past' do - let(:expires_at) { 2.days.ago } - - it 'does not add user to members', :aggregate_failures do - subject - - expect(flash[:alert]).to include('Expires at cannot be a date in the past') - expect(response).to redirect_to(project_project_members_path(project)) - expect(project.users).not_to include project_user - end - end - - context 'when set to a date in the future' do - let(:expires_at) { 5.days.from_now } - - it 'adds user to members', :aggregate_failures do - subject - - expect(controller).to set_flash.to 'Users were successfully added.' - expect(response).to redirect_to(project_project_members_path(project)) - expect(project.users).to include project_user - end - end - end - end - describe 'PUT update' do let_it_be(:requester) { create(:project_member, :access_request, project: project) } @@ -603,99 +472,6 @@ RSpec.describe Projects::ProjectMembersController do end end - describe 'POST apply_import' do - let_it_be(:another_project) { create(:project, :private) } - let_it_be(:member) { create(:user) } - - before do - project.add_maintainer(user) - another_project.add_guest(member) - sign_in(user) - end - - shared_context 'import applied' do - before do - post(:apply_import, params: { - namespace_id: project.namespace, - project_id: project, - source_project_id: another_project.id - }) - end - end - - context 'when user can admin source project members' do - before do - another_project.add_maintainer(user) - end - - include_context 'import applied' - - it 'imports source project members', :aggregate_failures do - expect(project.team_members).to include member - expect(controller).to set_flash.to 'Successfully imported' - expect(response).to redirect_to( - project_project_members_path(project) - ) - end - end - - context "when user can't admin source project members" do - before do - another_project.add_developer(user) - end - - include_context 'import applied' - - it 'does not import team members' do - expect(project.team_members).not_to include member - end - - it 'responds with not found' do - expect(response).to have_gitlab_http_status(:not_found) - end - end - end - - describe 'POST create' do - let_it_be(:stranger) { create(:user) } - - context 'when creating owner' do - before do - project.add_maintainer(user) - sign_in(user) - end - - it 'does not create a member' do - expect do - post :create, params: { - user_ids: stranger.id, - namespace_id: project.namespace, - access_level: Member::OWNER, - project_id: project - } - end.to change { project.members.count }.by(0) - end - end - - context 'when create maintainer' do - before do - project.add_maintainer(user) - sign_in(user) - end - - it 'creates a member' do - expect do - post :create, params: { - user_ids: stranger.id, - namespace_id: project.namespace, - access_level: Member::MAINTAINER, - project_id: project - } - end.to change { project.members.count }.by(1) - end - end - end - describe 'POST resend_invite' do let_it_be(:member) { create(:project_member, project: project) } |