Fix AudienceSegmentRefreshAllWorker args issue (#20576)
* Fix AudienceSegmentRefreshAllWorker args issue * Update test * Fix * Fix test --------- Co-authored-by: Mac Siri <krairit.siri@gmail.com>
This commit is contained in:
parent
15bac7afbc
commit
9b93b12f05
2 changed files with 10 additions and 24 deletions
|
|
@ -8,6 +8,6 @@ class AudienceSegmentRefreshAllWorker
|
|||
.distinct(:audience_segment_id)
|
||||
.pluck(:audience_segment_id).compact
|
||||
|
||||
AudienceSegmentRefreshWorker.perform_bulk([ids])
|
||||
AudienceSegmentRefreshWorker.perform_bulk(ids.zip)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,27 +3,13 @@ require "rails_helper"
|
|||
RSpec.describe AudienceSegmentRefreshAllWorker, type: :worker do
|
||||
let(:worker) { subject }
|
||||
let(:approved_and_published_ad) do
|
||||
create(:billboard,
|
||||
approved: true,
|
||||
published: true,
|
||||
audience_segment: create(:audience_segment))
|
||||
create(:billboard, approved: true, published: true, audience_segment: create(:audience_segment))
|
||||
end
|
||||
|
||||
before do
|
||||
allow(AudienceSegmentRefreshWorker).to receive(:perform_bulk)
|
||||
create(:billboard,
|
||||
approved: false,
|
||||
published: true,
|
||||
audience_segment: create(:audience_segment))
|
||||
create(:billboard,
|
||||
approved: true,
|
||||
published: false,
|
||||
audience_segment: create(:audience_segment))
|
||||
create(:billboard,
|
||||
approved: false,
|
||||
published: false,
|
||||
audience_segment: create(:audience_segment))
|
||||
|
||||
create(:billboard, approved: false, published: true, audience_segment: create(:audience_segment))
|
||||
create(:billboard, approved: true, published: false, audience_segment: create(:audience_segment))
|
||||
create(:billboard, approved: false, published: false, audience_segment: create(:audience_segment))
|
||||
create(:billboard,
|
||||
approved: true,
|
||||
published: true,
|
||||
|
|
@ -32,10 +18,10 @@ RSpec.describe AudienceSegmentRefreshAllWorker, type: :worker do
|
|||
|
||||
include_examples "#enqueues_on_correct_queue", "low_priority"
|
||||
|
||||
it "refreshes all active ads' segments" do
|
||||
worker.perform
|
||||
# NOTE: `perform_bulk` takes an array of arrays as argument.
|
||||
expect(AudienceSegmentRefreshWorker).to have_received(:perform_bulk)
|
||||
.with([[approved_and_published_ad.audience_segment_id]])
|
||||
it "queues up the jobs correctly" do
|
||||
expect do
|
||||
worker.perform
|
||||
end.to change(AudienceSegmentRefreshWorker.jobs, :size).by(1)
|
||||
expect(AudienceSegmentRefreshWorker.jobs.last["args"]).to eq([approved_and_published_ad.audience_segment.id])
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue