diff --git a/lib/sidekiq_publisher/worker.rb b/lib/sidekiq_publisher/worker.rb index 7accbb1..87fe79e 100644 --- a/lib/sidekiq_publisher/worker.rb +++ b/lib/sidekiq_publisher/worker.rb @@ -11,7 +11,7 @@ def self.included(base) module ClassMethods def client_push(item) if SidekiqPublisher::DatabaseConnection.transaction_open? - SidekiqPublisher::Job.create_job!(item) + SidekiqPublisher::Job.create_job!(item).job_id else super end diff --git a/spec/sidekiq_publisher/worker_spec.rb b/spec/sidekiq_publisher/worker_spec.rb index f6fc5d4..779befe 100644 --- a/spec/sidekiq_publisher/worker_spec.rb +++ b/spec/sidekiq_publisher/worker_spec.rb @@ -31,6 +31,18 @@ expect(sidekiq_job.display_class).to eq("TestWorker") expect(sidekiq_job.display_args).to eq(args) end + + it "returns job ID" do + fake_job_id = SecureRandom.hex(12) + allow(SidekiqPublisher::Job).to receive(:generate_sidekiq_jid).and_return(fake_job_id) + + result = TestWorker.sidekiq_client_push( + "class" => TestWorker, + "args" => args + ) + + expect(result).to eq(fake_job_id) + end end describe ".perform_async" do @@ -48,6 +60,15 @@ queue = Sidekiq::Queue.new("default") expect(queue.size).to eq(0) end + + it "returns job ID" do + fake_job_id = SecureRandom.hex(12) + allow(SidekiqPublisher::Job).to receive(:generate_sidekiq_jid).and_return(fake_job_id) + + result = TestWorker.perform_async(*args) + + expect(result).to eq(fake_job_id) + end end context "when not in a transaction", skip_db_clean: true do @@ -67,6 +88,15 @@ expect(sidekiq_job.display_class).to eq("TestWorker") expect(sidekiq_job.display_args).to eq(args) end + + it "returns job ID" do + fake_job_id = SecureRandom.hex(12) + allow(SidekiqPublisher::Job).to receive(:generate_sidekiq_jid).and_return(fake_job_id) + + result = TestWorker.perform_async(*args) + + expect(result).to eq(fake_job_id) + end end context "when Sidekiq::Testing mode is inline" do