Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-12-20 17:22:11 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-20 17:22:11 +0300
commit0c872e02b2c822e3397515ec324051ff540f0cd5 (patch)
treece2fb6ce7030e4dad0f4118d21ab6453e5938cdd /spec/initializers
parentf7e05a6853b12f02911494c4b3fe53d9540d74fc (diff)
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'spec/initializers')
-rw-r--r--spec/initializers/database_config_spec.rb30
-rw-r--r--spec/initializers/diagnostic_reports_spec.rb32
-rw-r--r--spec/initializers/forbid_sidekiq_in_transactions_spec.rb6
-rw-r--r--spec/initializers/lograge_spec.rb2
-rw-r--r--spec/initializers/rails_yaml_safe_load_spec.rb5
5 files changed, 51 insertions, 24 deletions
diff --git a/spec/initializers/database_config_spec.rb b/spec/initializers/database_config_spec.rb
index 230f1296760..bbb5e7b1923 100644
--- a/spec/initializers/database_config_spec.rb
+++ b/spec/initializers/database_config_spec.rb
@@ -7,15 +7,33 @@ RSpec.describe 'Database config initializer', :reestablished_active_record_base
load Rails.root.join('config/initializers/database_config.rb')
end
- it 'retains the correct database name for the connection' do
- previous_db_name = ApplicationRecord.connection.pool.db_config.name
+ shared_examples 'does not change connection attributes' do
+ it 'retains the correct database name for connection' do
+ previous_db_name = database_base_model.connection.pool.db_config.name
- subject
+ subject
- expect(ApplicationRecord.connection.pool.db_config.name).to eq(previous_db_name)
+ expect(database_base_model.connection.pool.db_config.name).to eq(previous_db_name)
+ end
+
+ it 'does not overwrite custom pool settings' do
+ expect { subject }.not_to change { database_base_model.connection_db_config.pool }
+ end
+ end
+
+ context 'when main database connection' do
+ let(:database_base_model) { Gitlab::Database.database_base_models[:main] }
+
+ it_behaves_like 'does not change connection attributes'
end
- it 'does not overwrite custom pool settings' do
- expect { subject }.not_to change { ActiveRecord::Base.connection_db_config.pool }
+ context 'when ci database connection' do
+ before do
+ skip_if_multiple_databases_not_setup
+ end
+
+ let(:database_base_model) { Gitlab::Database.database_base_models[:ci] }
+
+ it_behaves_like 'does not change connection attributes'
end
end
diff --git a/spec/initializers/diagnostic_reports_spec.rb b/spec/initializers/diagnostic_reports_spec.rb
index 01b1ed9b7b5..dc989efe809 100644
--- a/spec/initializers/diagnostic_reports_spec.rb
+++ b/spec/initializers/diagnostic_reports_spec.rb
@@ -2,15 +2,17 @@
require 'spec_helper'
-RSpec.describe 'diagnostic reports' do
+RSpec.describe 'diagnostic reports', :aggregate_failures, feature_category: :application_performance do
subject(:load_initializer) do
load Rails.root.join('config/initializers/diagnostic_reports.rb')
end
- shared_examples 'does not modify worker startup hooks' do
+ shared_examples 'does not modify worker hooks' do
it do
expect(Gitlab::Cluster::LifecycleEvents).not_to receive(:on_worker_start)
+ expect(Gitlab::Cluster::LifecycleEvents).not_to receive(:on_worker_stop)
expect(Gitlab::Memory::ReportsDaemon).not_to receive(:instance)
+ expect(Gitlab::Memory::Reporter).not_to receive(:new)
load_initializer
end
@@ -27,21 +29,27 @@ RSpec.describe 'diagnostic reports' do
end
let(:report_daemon) { instance_double(Gitlab::Memory::ReportsDaemon) }
+ let(:reporter) { instance_double(Gitlab::Memory::Reporter) }
it 'modifies worker startup hooks, starts Gitlab::Memory::ReportsDaemon' do
expect(Gitlab::Cluster::LifecycleEvents).to receive(:on_worker_start).and_call_original
-
+ expect(Gitlab::Cluster::LifecycleEvents).to receive(:on_worker_stop) # stub this out to not mutate global state
expect_next_instance_of(Gitlab::Memory::ReportsDaemon) do |daemon|
- expect(daemon).to receive(:start).and_call_original
+ expect(daemon).to receive(:start)
+ end
- # make sleep no-op
- allow(daemon).to receive(:sleep).and_return(nil)
+ load_initializer
+ end
- # let alive return 3 times: true, true, false
- allow(daemon).to receive(:alive).and_return(true, true, false)
- end
+ it 'writes scheduled heap dumps in on_worker_stop' do
+ expect(Gitlab::Cluster::LifecycleEvents).to receive(:on_worker_start)
+ expect(Gitlab::Cluster::LifecycleEvents).to receive(:on_worker_stop).and_call_original
+ expect(Gitlab::Memory::Reporter).to receive(:new).and_return(reporter)
+ expect(reporter).to receive(:run_report).with(an_instance_of(Gitlab::Memory::Reports::HeapDump))
load_initializer
+ # This is necessary because this hook normally fires during worker shutdown.
+ Gitlab::Cluster::LifecycleEvents.do_worker_stop
end
end
@@ -50,7 +58,7 @@ RSpec.describe 'diagnostic reports' do
allow(::Gitlab::Runtime).to receive(:puma?).and_return(false)
end
- include_examples 'does not modify worker startup hooks'
+ include_examples 'does not modify worker hooks'
end
end
@@ -59,7 +67,7 @@ RSpec.describe 'diagnostic reports' do
allow(::Gitlab::Runtime).to receive(:puma?).and_return(true)
end
- include_examples 'does not modify worker startup hooks'
+ include_examples 'does not modify worker hooks'
end
context 'when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is set to false' do
@@ -68,6 +76,6 @@ RSpec.describe 'diagnostic reports' do
allow(::Gitlab::Runtime).to receive(:puma?).and_return(true)
end
- include_examples 'does not modify worker startup hooks'
+ include_examples 'does not modify worker hooks'
end
end
diff --git a/spec/initializers/forbid_sidekiq_in_transactions_spec.rb b/spec/initializers/forbid_sidekiq_in_transactions_spec.rb
index a89ac73f6fa..7b1907a7451 100644
--- a/spec/initializers/forbid_sidekiq_in_transactions_spec.rb
+++ b/spec/initializers/forbid_sidekiq_in_transactions_spec.rb
@@ -34,8 +34,7 @@ RSpec.describe 'Sidekiq::Worker' do
Class.new do
include Sidekiq::Worker
- def perform
- end
+ def perform; end
end
end
@@ -47,8 +46,7 @@ RSpec.describe 'Sidekiq::Worker' do
context 'for mailers' do
let(:mailer_class) do
Class.new(ApplicationMailer) do
- def test_mail
- end
+ def test_mail; end
end
end
diff --git a/spec/initializers/lograge_spec.rb b/spec/initializers/lograge_spec.rb
index 0a794e8ebcd..c423c144dc2 100644
--- a/spec/initializers/lograge_spec.rb
+++ b/spec/initializers/lograge_spec.rb
@@ -93,7 +93,7 @@ RSpec.describe 'lograge', type: :request do
include MemoryInstrumentationHelper
before do
- skip_memory_instrumentation!
+ verify_memory_instrumentation_available!
end
it 'logs memory usage metrics' do
diff --git a/spec/initializers/rails_yaml_safe_load_spec.rb b/spec/initializers/rails_yaml_safe_load_spec.rb
index 8cf6a3676e0..714c568b07a 100644
--- a/spec/initializers/rails_yaml_safe_load_spec.rb
+++ b/spec/initializers/rails_yaml_safe_load_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe 'Rails YAML safe load' do
+ let_it_be(:project_namespace) { create(:project_namespace) }
+
let(:unsafe_load) { false }
let(:klass) do
@@ -13,7 +15,8 @@ RSpec.describe 'Rails YAML safe load' do
end
end
- let(:instance) { klass.new(description: data) }
+ let(:issue_type) { WorkItems::Type.default_by_type(:issue) }
+ let(:instance) { klass.new(description: data, work_item_type_id: issue_type.id, namespace_id: project_namespace.id) }
context 'with default permitted classes' do
let(:data) do