* Trying some models for audience segmentation * AudienceSegment basics * Attach AudienceSegment to DisplayAd * Possibly use a DUS to populate AudienceSegments * Add to display ad form UI * Add to display ad API * Refresh strategy for audience segments * Add user_id to async ads query * Maybe :testing -> :manual, for no-refresh segment * Test & tweak segment refresh * Testing audience_segment#refresh logic * Coverage: testing human_readable * Scope segment refresh to recently active users * Tweak logic for when to refresh * Tweak experience levels to match SettingsHelper * Test for front-end logic * Fix test, hope this helps coverage? * Better test names * One worker for all, many workers for each, perform_bulk * Fix audience segment UI, needs to use id, not enum * cron/schedule should RefreshAll * Singular id in RefreshWorker
19 lines
588 B
Ruby
19 lines
588 B
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe AudienceSegmentRefreshWorker, type: :worker do
|
|
let(:worker) { subject }
|
|
let(:fake_segment) { instance_double AudienceSegment, refresh!: :refreshed }
|
|
let(:segment_finder) { class_double AudienceSegment }
|
|
|
|
before do
|
|
allow(AudienceSegment).to receive(:find).and_return(fake_segment)
|
|
end
|
|
|
|
include_examples "#enqueues_on_correct_queue", "low_priority"
|
|
|
|
it "refreshes a segment by id" do
|
|
worker.perform(123)
|
|
expect(AudienceSegment).to have_received(:find).with(123)
|
|
expect(fake_segment).to have_received(:refresh!)
|
|
end
|
|
end
|