diff options
Diffstat (limited to 'spec/requests/projects')
4 files changed, 45 insertions, 3 deletions
diff --git a/spec/requests/projects/clusters/integrations_controller_spec.rb b/spec/requests/projects/clusters/integrations_controller_spec.rb new file mode 100644 index 00000000000..323c61b9af3 --- /dev/null +++ b/spec/requests/projects/clusters/integrations_controller_spec.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::Clusters::IntegrationsController do + include AccessMatchersForController + + shared_examples 'a secure endpoint' do + it 'is allowed for admin when admin mode enabled', :enable_admin_mode do + expect { subject }.to be_allowed_for(:admin) + end + + it 'is denied for admin when admin mode disabled' do + expect { subject }.to be_denied_for(:admin) + end + + context 'it is allowed for project maintainers' do + it { expect { subject }.to be_allowed_for(:owner).of(project) } + it { expect { subject }.to be_allowed_for(:maintainer).of(project) } + it { expect { subject }.to be_denied_for(:developer).of(project) } + it { expect { subject }.to be_denied_for(:reporter).of(project) } + it { expect { subject }.to be_denied_for(:guest).of(project) } + it { expect { subject }.to be_denied_for(:user) } + it { expect { subject }.to be_denied_for(:external) } + end + end + + describe 'POST create_or_update' do + let(:cluster) { create(:cluster, :project, :provided_by_gcp) } + let(:project) { cluster.project } + let(:user) { project.owner } + + it_behaves_like '#create_or_update action' do + let(:path) { create_or_update_project_cluster_integration_path(project, cluster) } + let(:redirect_path) { project_cluster_path(project, cluster, params: { tab: 'integrations' }) } + end + end +end diff --git a/spec/requests/projects/cycle_analytics_events_spec.rb b/spec/requests/projects/cycle_analytics_events_spec.rb index 565576f3091..7921fdcb0de 100644 --- a/spec/requests/projects/cycle_analytics_events_spec.rb +++ b/spec/requests/projects/cycle_analytics_events_spec.rb @@ -75,7 +75,7 @@ RSpec.describe 'value stream analytics events' do context 'with private project and builds' do before do - project.members.last.update(access_level: Gitlab::Access::GUEST) + project.members.last.update!(access_level: Gitlab::Access::GUEST) end it 'does not list the test events' do @@ -100,7 +100,7 @@ RSpec.describe 'value stream analytics events' do def create_cycle milestone = create(:milestone, project: project) - issue.update(milestone: milestone) + issue.update!(milestone: milestone) mr = create_merge_request_closing_issue(user, project, issue, commit_message: "References #{issue.to_reference}") pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha, head_pipeline_of: mr) diff --git a/spec/requests/projects/issue_links_controller_spec.rb b/spec/requests/projects/issue_links_controller_spec.rb index a21c676f000..d22955718f8 100644 --- a/spec/requests/projects/issue_links_controller_spec.rb +++ b/spec/requests/projects/issue_links_controller_spec.rb @@ -71,7 +71,7 @@ RSpec.describe Projects::IssueLinksController do list_service_response = IssueLinks::ListService.new(issue, user).execute expect(response).to have_gitlab_http_status(:not_found) - expect(json_response).to eq('message' => 'No Issue found for given params', 'issuables' => list_service_response.as_json) + expect(json_response).to eq('message' => 'No matching issue found. Make sure that you are adding a valid issue URL.', 'issuables' => list_service_response.as_json) end end end diff --git a/spec/requests/projects/merge_requests_discussions_spec.rb b/spec/requests/projects/merge_requests_discussions_spec.rb index 6ec586ed22c..eb8cf9f797d 100644 --- a/spec/requests/projects/merge_requests_discussions_spec.rb +++ b/spec/requests/projects/merge_requests_discussions_spec.rb @@ -26,6 +26,10 @@ RSpec.describe 'merge requests discussions' do # https://docs.gitlab.com/ee/development/query_recorder.html#use-request-specs-instead-of-controller-specs it 'avoids N+1 DB queries', :request_store do + send_request # warm up + + create(:diff_note_on_merge_request, noteable: merge_request, + project: merge_request.project) control = ActiveRecord::QueryRecorder.new { send_request } create(:diff_note_on_merge_request, noteable: merge_request, |