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>2020-03-17 15:09:52 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-17 15:09:52 +0300
commit8ae26d705abe341b03bc15d4373d6cd0c77c0baf (patch)
tree655ee03a968e340c975b8ab7d77cfd5ceaf3c969 /spec/workers
parentfc1df8c8307fc5022f9e8aae04164c089d8fdf2e (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/workers')
-rw-r--r--spec/workers/concerns/application_worker_spec.rb41
-rw-r--r--spec/workers/expire_job_cache_worker_spec.rb4
2 files changed, 42 insertions, 3 deletions
diff --git a/spec/workers/concerns/application_worker_spec.rb b/spec/workers/concerns/application_worker_spec.rb
index ae5244e2f62..2fbaaf1131f 100644
--- a/spec/workers/concerns/application_worker_spec.rb
+++ b/spec/workers/concerns/application_worker_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe ApplicationWorker do
- let(:worker) do
+ let_it_be(:worker) do
Class.new do
def self.name
'Gitlab::Foo::Bar::DummyWorker'
@@ -13,12 +13,51 @@ describe ApplicationWorker do
end
end
+ let(:instance) { worker.new }
+
describe 'Sidekiq options' do
it 'sets the queue name based on the class name' do
expect(worker.sidekiq_options['queue']).to eq('foo_bar_dummy')
end
end
+ describe '#structured_payload' do
+ let(:payload) { {} }
+
+ subject(:result) { instance.structured_payload(payload) }
+
+ it 'adds worker related payload' do
+ instance.jid = 'a jid'
+
+ expect(result).to include(
+ 'class' => worker.class,
+ 'job_status' => 'running',
+ 'queue' => worker.queue,
+ 'jid' => instance.jid
+ )
+ end
+
+ it 'adds labkit context' do
+ user = build_stubbed(:user, username: 'jane-doe')
+
+ instance.with_context(user: user) do
+ expect(result).to include('meta.user' => user.username)
+ end
+ end
+
+ it 'adds custom payload converting stringified keys' do
+ payload[:message] = 'some message'
+
+ expect(result).to include('message' => payload[:message])
+ end
+
+ it 'does not override predefined context keys with custom payload' do
+ payload['class'] = 'custom value'
+
+ expect(result).to include('class' => worker.class)
+ end
+ end
+
describe '.queue_namespace' do
it 'sets the queue name based on the class name' do
worker.queue_namespace :some_namespace
diff --git a/spec/workers/expire_job_cache_worker_spec.rb b/spec/workers/expire_job_cache_worker_spec.rb
index 797f110ec68..2776624f14c 100644
--- a/spec/workers/expire_job_cache_worker_spec.rb
+++ b/spec/workers/expire_job_cache_worker_spec.rb
@@ -21,12 +21,12 @@ describe ExpireJobCacheWorker do
allow(Gitlab::EtagCaching::Store).to receive(:new) { spy_store }
expect(spy_store).to receive(:touch)
- .exactly(IdempotentWorkerHelper::WORKER_EXEC_TIMES).times
+ .exactly(worker_exec_times).times
.with(pipeline_path)
.and_call_original
expect(spy_store).to receive(:touch)
- .exactly(IdempotentWorkerHelper::WORKER_EXEC_TIMES).times
+ .exactly(worker_exec_times).times
.with(job_path)
.and_call_original