diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-31 12:08:57 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-31 12:08:57 +0300 |
commit | b46d41d54b05eab84bb9653c111124b67f573dd8 (patch) | |
tree | d93565ff482acf086904dc96e5718143e69b9174 /spec/controllers | |
parent | 8d15913bc406fea50faf8f80abf129e2e9a5f847 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/pipelines_controller_spec.rb | 37 | ||||
-rw-r--r-- | spec/controllers/registrations_controller_spec.rb | 20 |
2 files changed, 48 insertions, 9 deletions
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb index 65a563fac7c..774971e992d 100644 --- a/spec/controllers/projects/pipelines_controller_spec.rb +++ b/spec/controllers/projects/pipelines_controller_spec.rb @@ -311,23 +311,42 @@ RSpec.describe Projects::PipelinesController do let_it_be(:pipeline) { create(:ci_pipeline, project: project) } - def create_build_with_artifacts(stage, stage_idx, name) - create(:ci_build, :artifacts, :tags, pipeline: pipeline, stage: stage, stage_idx: stage_idx, name: name) + def create_build_with_artifacts(stage, stage_idx, name, status) + create(:ci_build, :artifacts, :tags, status, user: user, pipeline: pipeline, stage: stage, stage_idx: stage_idx, name: name) + end + + def create_bridge(stage, stage_idx, name, status) + create(:ci_bridge, status, pipeline: pipeline, stage: stage, stage_idx: stage_idx, name: name) end before do - create_build_with_artifacts('build', 0, 'job1') - create_build_with_artifacts('build', 0, 'job2') + create_build_with_artifacts('build', 0, 'job1', :failed) + create_build_with_artifacts('build', 0, 'job2', :running) + create_build_with_artifacts('build', 0, 'job3', :pending) + create_bridge('deploy', 1, 'deploy-a', :failed) + create_bridge('deploy', 1, 'deploy-b', :created) end - it 'avoids N+1 database queries', :request_store do - control_count = ActiveRecord::QueryRecorder.new { get_pipeline_html }.count + it 'avoids N+1 database queries', :request_store, :use_sql_query_cache do + # warm up + get_pipeline_html expect(response).to have_gitlab_http_status(:ok) - create_build_with_artifacts('build', 0, 'job3') + control = ActiveRecord::QueryRecorder.new(skip_cached: false) do + get_pipeline_html + expect(response).to have_gitlab_http_status(:ok) + end + + create_build_with_artifacts('build', 0, 'job4', :failed) + create_build_with_artifacts('build', 0, 'job5', :running) + create_build_with_artifacts('build', 0, 'job6', :pending) + create_bridge('deploy', 1, 'deploy-c', :failed) + create_bridge('deploy', 1, 'deploy-d', :created) - expect { get_pipeline_html }.not_to exceed_query_limit(control_count) - expect(response).to have_gitlab_http_status(:ok) + expect do + get_pipeline_html + expect(response).to have_gitlab_http_status(:ok) + end.not_to exceed_all_query_limit(control) end end diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb index a5a0f16f2b1..5edd60ebc79 100644 --- a/spec/controllers/registrations_controller_spec.rb +++ b/spec/controllers/registrations_controller_spec.rb @@ -283,6 +283,26 @@ RSpec.describe RegistrationsController do end end + context 'when the registration fails' do + let_it_be(:member) { create(:project_member, :invited) } + let_it_be(:missing_user_params) do + { username: '', email: member.invite_email, password: 'Any_password' } + end + + let_it_be(:user_params) { { user: missing_user_params } } + + let(:session_params) { { invite_email: member.invite_email } } + + subject { post(:create, params: user_params, session: session_params) } + + it 'does not delete the invitation or register the new user' do + subject + + expect(member.invite_token).not_to be_nil + expect(controller.current_user).to be_nil + end + end + context 'when soft email confirmation is enabled' do before do stub_feature_flags(soft_email_confirmation: true) |