diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 08:43:02 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 08:43:02 +0000 |
commit | d9ab72d6080f594d0b3cae15f14b3ef2c6c638cb (patch) | |
tree | 2341ef426af70ad1e289c38036737e04b0aa5007 /spec/workers/concerns | |
parent | d6e514dd13db8947884cd58fe2a9c2a063400a9b (diff) | |
download | gitlab-ce-d9ab72d6080f594d0b3cae15f14b3ef2c6c638cb.tar.gz |
Add latest changes from gitlab-org/gitlab@14-4-stable-eev14.4.0-rc42
Diffstat (limited to 'spec/workers/concerns')
-rw-r--r-- | spec/workers/concerns/application_worker_spec.rb | 12 | ||||
-rw-r--r-- | spec/workers/concerns/gitlab/github_import/object_importer_spec.rb | 63 | ||||
-rw-r--r-- | spec/workers/concerns/worker_context_spec.rb | 4 |
3 files changed, 59 insertions, 20 deletions
diff --git a/spec/workers/concerns/application_worker_spec.rb b/spec/workers/concerns/application_worker_spec.rb index ac4e4a682c8..af038c81b9e 100644 --- a/spec/workers/concerns/application_worker_spec.rb +++ b/spec/workers/concerns/application_worker_spec.rb @@ -248,6 +248,10 @@ RSpec.describe ApplicationWorker do end describe '.perform_async' do + before do + stub_const(worker.name, worker) + end + shared_examples_for 'worker utilizes load balancing capabilities' do |data_consistency| before do worker.data_consistency(data_consistency) @@ -282,6 +286,10 @@ RSpec.describe ApplicationWorker do end describe '.bulk_perform_async' do + before do + stub_const(worker.name, worker) + end + it 'enqueues jobs in bulk' do Sidekiq::Testing.fake! do worker.bulk_perform_async([['Foo', [1]], ['Foo', [2]]]) @@ -293,6 +301,10 @@ RSpec.describe ApplicationWorker do end describe '.bulk_perform_in' do + before do + stub_const(worker.name, worker) + end + context 'when delay is valid' do it 'correctly schedules jobs' do Sidekiq::Testing.fake! do diff --git a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb index c1ac5ffebe8..b5252294b27 100644 --- a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb +++ b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::GithubImport::ObjectImporter do +RSpec.describe Gitlab::GithubImport::ObjectImporter, :aggregate_failures do let(:worker) do Class.new do def self.name @@ -26,9 +26,15 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do let(:importer_class) { double(:importer_class, name: 'klass_name') } let(:importer_instance) { double(:importer_instance) } let(:client) { double(:client) } + let(:github_identifiers) do + { + some_id: 1, + some_type: '_some_type_' + } + end - before do - stub_const('MockRepresantation', Class.new do + let(:representation_class) do + Class.new do include Gitlab::GithubImport::Representation::ToHash include Gitlab::GithubImport::Representation::ExposeAttribute @@ -41,7 +47,20 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do def initialize(attributes) @attributes = attributes end - end) + + def github_identifiers + { + some_id: 1, + some_type: '_some_type_' + } + end + end + end + + let(:stubbed_representation) { representation_class } + + before do + stub_const('MockRepresantation', stubbed_representation) end describe '#import', :clean_gitlab_redis_cache do @@ -64,7 +83,7 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do expect(Gitlab::GithubImport::Logger) .to receive(:info) .with( - github_id: 1, + github_identifiers: github_identifiers, message: 'starting importer', project_id: project.id, importer: 'klass_name' @@ -73,7 +92,7 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do expect(Gitlab::GithubImport::Logger) .to receive(:info) .with( - github_id: 1, + github_identifiers: github_identifiers, message: 'importer finished', project_id: project.id, importer: 'klass_name' @@ -101,7 +120,7 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do expect(Gitlab::GithubImport::Logger) .to receive(:info) .with( - github_id: 1, + github_identifiers: github_identifiers, message: 'starting importer', project_id: project.id, importer: 'klass_name' @@ -125,21 +144,25 @@ RSpec.describe Gitlab::GithubImport::ObjectImporter do expect(project.import_failures.last.exception_message).to eq('some error') end - it 'logs error when representation does not have a github_id' do - expect(importer_class).not_to receive(:new) + context 'without github_identifiers defined' do + let(:stubbed_representation) { representation_class.instance_eval { undef_method :github_identifiers } } - expect(Gitlab::Import::ImportFailureService) - .to receive(:track) - .with( - project_id: project.id, - exception: a_kind_of(KeyError), - error_source: 'klass_name', - fail_import: true - ) - .and_call_original + it 'logs error when representation does not have a github_id' do + expect(importer_class).not_to receive(:new) - expect { worker.import(project, client, { 'number' => 10 }) } - .to raise_error(KeyError, 'key not found: :github_id') + expect(Gitlab::Import::ImportFailureService) + .to receive(:track) + .with( + project_id: project.id, + exception: a_kind_of(NoMethodError), + error_source: 'klass_name', + fail_import: true + ) + .and_call_original + + expect { worker.import(project, client, { 'number' => 10 }) } + .to raise_error(NoMethodError, /^undefined method `github_identifiers/) + end end end end diff --git a/spec/workers/concerns/worker_context_spec.rb b/spec/workers/concerns/worker_context_spec.rb index ebdb752d900..80b427b2b42 100644 --- a/spec/workers/concerns/worker_context_spec.rb +++ b/spec/workers/concerns/worker_context_spec.rb @@ -13,6 +13,10 @@ RSpec.describe WorkerContext do end end + before do + stub_const(worker.name, worker) + end + describe '.worker_context' do it 'allows modifying the context for the entire worker' do worker.worker_context(user: build_stubbed(:user)) |