diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-25 06:08:49 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-25 06:08:49 +0300 |
commit | a8c82a6395ed62380b9061a26d92e41d46c2877e (patch) | |
tree | bd8ab49ac11104ad9ae953afd4c5e0036fdddaa2 /spec | |
parent | 0b881f91159cc97ccb7328a2e52977a60ea83fbe (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
23 files changed, 164 insertions, 50 deletions
diff --git a/spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb b/spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb new file mode 100644 index 00000000000..070887c83c3 --- /dev/null +++ b/spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::ConfigChecker::PumaRuggedChecker do + describe '#check' do + subject { described_class.check } + + context 'application is not puma' do + before do + allow(Gitlab::Runtime).to receive(:puma?).and_return(false) + end + + it { is_expected.to be_empty } + end + + context 'application is puma' do + let(:notice_running_puma) do + { + type: 'info', + message: 'You are running Puma, which is currently experimental. '\ + 'More information is available in our '\ + '<a href="https://docs.gitlab.com/ee/administration/operations/puma.html">documentation</a>.' + } + end + let(:notice_multi_threaded_puma) do + { + type: 'info', + message: 'Puma is running with a thread count above 1. '\ + 'Information on deprecated GitLab features in this configuration is available in the '\ + '<a href="https://docs.gitlab.com/ee/administration/operations/puma.html">documentation</a>.'\ + } + end + let(:notice_multi_threaded_puma_with_rugged) do + { + type: 'warning', + message: 'Puma is running with a thread count above 1 and the rugged '\ + 'service is enabled. This may decrease performance in some environments. '\ + 'See our <a href="https://docs.gitlab.com/ee/administration/operations/puma.html#performance-caveat-when-using-puma-with-rugged">documentation</a> '\ + 'for details of this issue.' + } + end + + before do + allow(Gitlab::Runtime).to receive(:puma?).and_return(true) + allow(described_class).to receive(:running_puma_with_multiple_threads?).and_return(multithreaded_puma) + allow(described_class).to receive(:rugged_enabled_through_feature_flag?).and_return(rugged_enabled) + end + + context 'not multithreaded_puma and rugged API enabled' do + let(:multithreaded_puma) { false } + let(:rugged_enabled) { true } + + it 'report running puma notice' do + is_expected.to contain_exactly(notice_running_puma) + end + end + + context 'not multithreaded_puma and rugged API is not enabled' do + let(:multithreaded_puma) { false } + let(:rugged_enabled) { false } + + it 'report running puma notice' do + is_expected.to contain_exactly(notice_running_puma) + end + end + + context 'multithreaded_puma and rugged API is not enabled' do + let(:multithreaded_puma) { true } + let(:rugged_enabled) { false } + + it 'report running puma notice and multi-thread puma notice' do + is_expected.to contain_exactly(notice_running_puma, notice_multi_threaded_puma) + end + end + + context 'multithreaded_puma and rugged API is enabled' do + let(:multithreaded_puma) { true } + let(:rugged_enabled) { true } + + it 'report puma/multi_threaded_puma/multi_threaded_puma_with_rugged notices' do + is_expected.to contain_exactly(notice_running_puma, notice_multi_threaded_puma, notice_multi_threaded_puma_with_rugged) + end + end + end + end +end diff --git a/spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb b/spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb index 300d7bb14b6..b396e5d22c3 100644 --- a/spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb +++ b/spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb @@ -152,6 +152,43 @@ describe Gitlab::Git::RuggedImpl::UseRugged, :seed_helper do end end + describe '#rugged_enabled_through_feature_flag?' do + subject { wrapper.send(:rugged_enabled_through_feature_flag?) } + + before do + allow(Feature).to receive(:enabled?).with(:feature_key_1).and_return(true) + allow(Feature).to receive(:enabled?).with(:feature_key_2).and_return(true) + allow(Feature).to receive(:enabled?).with(:feature_key_3).and_return(false) + allow(Feature).to receive(:enabled?).with(:feature_key_4).and_return(false) + + stub_const('Gitlab::Git::RuggedImpl::Repository::FEATURE_FLAGS', feature_keys) + end + + context 'no feature keys given' do + let(:feature_keys) { [] } + + it { is_expected.to be_falsey } + end + + context 'all features are enabled' do + let(:feature_keys) { [:feature_key_1, :feature_key_2] } + + it { is_expected.to be_truthy} + end + + context 'all features are not enabled' do + let(:feature_keys) { [:feature_key_3, :feature_key_4] } + + it { is_expected.to be_falsey } + end + + context 'some feature is enabled' do + let(:feature_keys) { [:feature_key_4, :feature_key_2] } + + it { is_expected.to be_truthy } + end + end + def create_temporary_gitaly_metadata_file tmp = Tempfile.new('.gitaly-metadata') gitaly_metadata = { diff --git a/spec/serializers/build_details_entity_spec.rb b/spec/serializers/build_details_entity_spec.rb index fc05989df16..15f605b183d 100644 --- a/spec/serializers/build_details_entity_spec.rb +++ b/spec/serializers/build_details_entity_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe BuildDetailsEntity do include ProjectForksHelper - set(:user) { create(:admin) } + let_it_be(:user) { create(:admin) } it 'inherits from JobEntity' do expect(described_class).to be < JobEntity diff --git a/spec/serializers/container_repository_entity_spec.rb b/spec/serializers/container_repository_entity_spec.rb index 799a8d5c122..96c80331f41 100644 --- a/spec/serializers/container_repository_entity_spec.rb +++ b/spec/serializers/container_repository_entity_spec.rb @@ -3,14 +3,10 @@ require 'spec_helper' describe ContainerRepositoryEntity do - let(:entity) do - described_class.new(repository, request: request) - end - - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:repository) { create(:container_repository, project: project) } - + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:repository) { create(:container_repository, project: project) } + let(:entity) { described_class.new(repository, request: request) } let(:request) { double('request') } subject { entity.as_json } diff --git a/spec/serializers/container_tag_entity_spec.rb b/spec/serializers/container_tag_entity_spec.rb index 8a67a189761..8440e56f08f 100644 --- a/spec/serializers/container_tag_entity_spec.rb +++ b/spec/serializers/container_tag_entity_spec.rb @@ -3,14 +3,10 @@ require 'spec_helper' describe ContainerTagEntity do - let(:entity) do - described_class.new(tag, request: request) - end - - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:repository) { create(:container_repository, name: 'image', project: project) } - + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:repository) { create(:container_repository, name: 'image', project: project) } + let(:entity) { described_class.new(tag, request: request) } let(:request) { double('request') } let(:tag) { repository.tag('test') } diff --git a/spec/serializers/deployment_serializer_spec.rb b/spec/serializers/deployment_serializer_spec.rb index 4834f5ede3c..67fccaa3f25 100644 --- a/spec/serializers/deployment_serializer_spec.rb +++ b/spec/serializers/deployment_serializer_spec.rb @@ -3,9 +3,8 @@ require 'spec_helper' describe DeploymentSerializer do - set(:project) { create(:project, :repository) } - set(:user) { create(:user, email: project.commit.author_email) } - + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user, email: project.commit.author_email) } let(:resource) { create(:deployment, project: project, sha: project.commit.id) } let(:serializer) { described_class.new(request) } diff --git a/spec/serializers/merge_request_serializer_spec.rb b/spec/serializers/merge_request_serializer_spec.rb index 9297df31842..871a47b0a02 100644 --- a/spec/serializers/merge_request_serializer_spec.rb +++ b/spec/serializers/merge_request_serializer_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe MergeRequestSerializer do - set(:user) { create(:user) } - set(:resource) { create(:merge_request, description: "Description") } + let_it_be(:user) { create(:user) } + let_it_be(:resource) { create(:merge_request, description: "Description") } let(:json_entity) do described_class.new(current_user: user) diff --git a/spec/serializers/namespace_basic_entity_spec.rb b/spec/serializers/namespace_basic_entity_spec.rb index f8b71ceb9f3..d3d666d57aa 100644 --- a/spec/serializers/namespace_basic_entity_spec.rb +++ b/spec/serializers/namespace_basic_entity_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe NamespaceBasicEntity do - set(:group) { create(:group) } + let_it_be(:group) { create(:group) } let(:entity) do described_class.represent(group) end diff --git a/spec/serializers/pipeline_details_entity_spec.rb b/spec/serializers/pipeline_details_entity_spec.rb index f270f9fd4cb..a154bcac635 100644 --- a/spec/serializers/pipeline_details_entity_spec.rb +++ b/spec/serializers/pipeline_details_entity_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe PipelineDetailsEntity do - set(:user) { create(:user) } + let_it_be(:user) { create(:user) } let(:request) { double('request') } it 'inherrits from PipelineEntity' do diff --git a/spec/serializers/pipeline_entity_spec.rb b/spec/serializers/pipeline_entity_spec.rb index 75f3bdfcc9e..914f42054bd 100644 --- a/spec/serializers/pipeline_entity_spec.rb +++ b/spec/serializers/pipeline_entity_spec.rb @@ -5,9 +5,9 @@ require 'spec_helper' describe PipelineEntity do include Gitlab::Routing - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project) } let(:request) { double('request') } before do diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 84b0e487ee7..4e4cc9c35e6 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe PipelineSerializer do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:serializer) do described_class.new(current_user: user, project: project) diff --git a/spec/serializers/project_import_entity_spec.rb b/spec/serializers/project_import_entity_spec.rb index e476da82729..9ccae798091 100644 --- a/spec/serializers/project_import_entity_spec.rb +++ b/spec/serializers/project_import_entity_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe ProjectImportEntity do include ImportHelper - set(:project) { create(:project, import_status: :started, import_source: 'namespace/project') } + let_it_be(:project) { create(:project, import_status: :started, import_source: 'namespace/project') } let(:provider_url) { 'https://provider.com' } let(:entity) { described_class.represent(project, provider_url: provider_url) } diff --git a/spec/serializers/project_serializer_spec.rb b/spec/serializers/project_serializer_spec.rb index 22f958fc17f..ef3dd1dc15e 100644 --- a/spec/serializers/project_serializer_spec.rb +++ b/spec/serializers/project_serializer_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe ProjectSerializer do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } let(:provider_url) { 'http://provider.com' } context 'when serializer option is :import' do diff --git a/spec/tasks/gitlab/web_hook_rake_spec.rb b/spec/tasks/gitlab/web_hook_rake_spec.rb index be31507000d..ee3c7e034f3 100644 --- a/spec/tasks/gitlab/web_hook_rake_spec.rb +++ b/spec/tasks/gitlab/web_hook_rake_spec.rb @@ -3,11 +3,10 @@ require 'rake_helper' describe 'gitlab:web_hook namespace rake tasks' do - set(:group) { create(:group) } - - set(:project1) { create(:project, namespace: group) } - set(:project2) { create(:project, namespace: group) } - set(:other_group_project) { create(:project) } + let_it_be(:group, refind: true) { create(:group) } + let_it_be(:project1, reload: true) { create(:project, namespace: group) } + let_it_be(:project2, reload: true) { create(:project, namespace: group) } + let_it_be(:other_group_project, reload: true) { create(:project) } let(:url) { 'http://example.com' } let(:hook_urls) { (project1.hooks + project2.hooks).map(&:url) } diff --git a/spec/views/shared/milestones/_top.html.haml_spec.rb b/spec/views/shared/milestones/_top.html.haml_spec.rb index 944dfc8a27b..1e209ad6f3f 100644 --- a/spec/views/shared/milestones/_top.html.haml_spec.rb +++ b/spec/views/shared/milestones/_top.html.haml_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe 'shared/milestones/_top.html.haml' do - set(:group) { create(:group) } + let_it_be(:group) { create(:group) } let(:project) { create(:project, group: group) } let(:milestone) { create(:milestone, project: project) } diff --git a/spec/workers/detect_repository_languages_worker_spec.rb b/spec/workers/detect_repository_languages_worker_spec.rb index 755eb8dbf6b..84af49050d4 100644 --- a/spec/workers/detect_repository_languages_worker_spec.rb +++ b/spec/workers/detect_repository_languages_worker_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe DetectRepositoryLanguagesWorker do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } subject { described_class.new } diff --git a/spec/workers/expire_build_instance_artifacts_worker_spec.rb b/spec/workers/expire_build_instance_artifacts_worker_spec.rb index 39f676f1057..335fa5e6c98 100644 --- a/spec/workers/expire_build_instance_artifacts_worker_spec.rb +++ b/spec/workers/expire_build_instance_artifacts_worker_spec.rb @@ -31,7 +31,7 @@ describe ExpireBuildInstanceArtifactsWorker do end context 'with not yet expired artifacts' do - set(:build) do + let_it_be(:build) do create(:ci_build, :artifacts, artifacts_expire_at: Time.now + 7.days) end diff --git a/spec/workers/expire_job_cache_worker_spec.rb b/spec/workers/expire_job_cache_worker_spec.rb index ebca7020ee5..797f110ec68 100644 --- a/spec/workers/expire_job_cache_worker_spec.rb +++ b/spec/workers/expire_job_cache_worker_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe ExpireJobCacheWorker do - set(:pipeline) { create(:ci_empty_pipeline) } + let_it_be(:pipeline) { create(:ci_empty_pipeline) } let(:project) { pipeline.project } describe '#perform' do diff --git a/spec/workers/mail_scheduler/notification_service_worker_spec.rb b/spec/workers/mail_scheduler/notification_service_worker_spec.rb index 3c023e713ed..ac95a6d7e43 100644 --- a/spec/workers/mail_scheduler/notification_service_worker_spec.rb +++ b/spec/workers/mail_scheduler/notification_service_worker_spec.rb @@ -6,7 +6,7 @@ describe MailScheduler::NotificationServiceWorker do let(:worker) { described_class.new } let(:method) { 'new_key' } - set(:key) { create(:personal_key) } + let_it_be(:key) { create(:personal_key) } def serialize(*args) ActiveJob::Arguments.serialize(args) diff --git a/spec/workers/pipeline_schedule_worker_spec.rb b/spec/workers/pipeline_schedule_worker_spec.rb index 4926c14a6ab..758cfa82d5d 100644 --- a/spec/workers/pipeline_schedule_worker_spec.rb +++ b/spec/workers/pipeline_schedule_worker_spec.rb @@ -7,8 +7,8 @@ describe PipelineScheduleWorker do subject { described_class.new.perform } - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let!(:pipeline_schedule) do create(:ci_pipeline_schedule, :nightly, project: project, owner: user) diff --git a/spec/workers/remote_mirror_notification_worker_spec.rb b/spec/workers/remote_mirror_notification_worker_spec.rb index 5182f67b4af..c9321fd7c56 100644 --- a/spec/workers/remote_mirror_notification_worker_spec.rb +++ b/spec/workers/remote_mirror_notification_worker_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe RemoteMirrorNotificationWorker, :mailer do - set(:project) { create(:project, :repository, :remote_mirror) } - set(:mirror) { project.remote_mirrors.first } + let_it_be(:project) { create(:project, :repository, :remote_mirror) } + let_it_be(:mirror) { project.remote_mirrors.first } describe '#execute' do it 'calls NotificationService#remote_mirror_update_failed when the mirror exists' do diff --git a/spec/workers/run_pipeline_schedule_worker_spec.rb b/spec/workers/run_pipeline_schedule_worker_spec.rb index 14364194b44..afeee4bac73 100644 --- a/spec/workers/run_pipeline_schedule_worker_spec.rb +++ b/spec/workers/run_pipeline_schedule_worker_spec.rb @@ -4,9 +4,9 @@ require 'spec_helper' describe RunPipelineScheduleWorker do describe '#perform' do - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:pipeline_schedule) { create(:ci_pipeline_schedule, :nightly, project: project ) } + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:pipeline_schedule) { create(:ci_pipeline_schedule, :nightly, project: project ) } let(:worker) { described_class.new } context 'when a project not found' do diff --git a/spec/workers/update_external_pull_requests_worker_spec.rb b/spec/workers/update_external_pull_requests_worker_spec.rb index f3956bb3514..8930a36ceb8 100644 --- a/spec/workers/update_external_pull_requests_worker_spec.rb +++ b/spec/workers/update_external_pull_requests_worker_spec.rb @@ -4,8 +4,8 @@ require 'spec_helper' describe UpdateExternalPullRequestsWorker do describe '#perform' do - set(:project) { create(:project, import_source: 'tanuki/repository') } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, import_source: 'tanuki/repository') } + let_it_be(:user) { create(:user) } let(:worker) { described_class.new } before do |