Restore DisplayAd search (#18511)
* Restore DisplayAd search * Add tests for search behavior
This commit is contained in:
parent
f11726c749
commit
ed2bfe59c1
3 changed files with 30 additions and 3 deletions
|
|
@ -10,9 +10,7 @@ module Admin
|
|||
|
||||
return if params[:search].blank?
|
||||
|
||||
@display_ads = @display_ads
|
||||
.where("processed_html ILIKE :search OR placement_area ILIKE :search OR organizations.name ILIKE :search",
|
||||
search: "%#{params[:search]}%")
|
||||
@display_ads = @display_ads.search_ads(params[:search])
|
||||
end
|
||||
|
||||
def new
|
||||
|
|
|
|||
|
|
@ -23,6 +23,11 @@ class DisplayAd < ApplicationRecord
|
|||
|
||||
scope :approved_and_published, -> { where(approved: true, published: true) }
|
||||
|
||||
scope :search_ads, lambda { |term|
|
||||
where "name ILIKE :search OR processed_html ILIKE :search OR placement_area ILIKE :search",
|
||||
search: "%#{term}%"
|
||||
}
|
||||
|
||||
def self.for_display(area, user_signed_in)
|
||||
relation = approved_and_published.where(placement_area: area).order(success_rate: :desc)
|
||||
|
||||
|
|
|
|||
|
|
@ -113,4 +113,28 @@ RSpec.describe DisplayAd, type: :model do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe ".search_ads" do
|
||||
let!(:ad) { create(:display_ad, name: "This is an Ad", body_markdown: "Ad Body", placement_area: "post_comments") }
|
||||
|
||||
it "finds via name" do
|
||||
expect(described_class.search_ads("this").ids).to contain_exactly(ad.id)
|
||||
end
|
||||
|
||||
it "finds via body" do
|
||||
expect(described_class.search_ads("body").ids).to contain_exactly(ad.id)
|
||||
end
|
||||
|
||||
it "finds via placement_area" do
|
||||
expect(described_class.search_ads("comment").ids).to contain_exactly(ad.id)
|
||||
end
|
||||
|
||||
it "finds just one result via multiple criteria" do
|
||||
expect(described_class.search_ads("ad").ids).to contain_exactly(ad.id)
|
||||
end
|
||||
|
||||
it "returns empty when no match" do
|
||||
expect(described_class.search_ads("foo")).to eq([])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue