adds search method to Organization

This commit is contained in:
Juanjo Bazán
2015-08-29 16:29:55 +02:00
parent c4de2b9af5
commit 59c2fdb596
2 changed files with 31 additions and 0 deletions

View File

@@ -28,4 +28,8 @@ class Organization < ActiveRecord::Base
(verified_at.blank? || verified_at < rejected_at)
end
def self.search(text)
text.present? ? joins(:user).where("users.email = ? OR users.phone_number = ? OR organizations.name ILIKE ?", text, text, "%#{text}%") : none
end
end

View File

@@ -43,4 +43,31 @@ describe Organization do
expect(subject.rejected?).to be false
end
end
describe "self.search" do
before(:all) {@organization = create(:organization, name: "Watershed", user: create(:user, phone_number: "333"))}
it "returns no results if search term is empty" do
expect(Organization.search(" ").size).to eq(0)
end
it "finds fuzzily by name" do
expect(Organization.search("Greenpeace").size).to eq 0
search = Organization.search("Tershe")
expect(search.size).to eq 1
expect(search.first).to eq @organization
end
scenario "finds by users email" do
search = Organization.search(@organization.user.email)
expect(search.size).to eq 1
expect(search.first).to eq @organization
end
scenario "finds by users phone number" do
search = Organization.search(@organization.user.phone_number)
expect(search.size).to eq 1
expect(search.first).to eq @organization
end
end
end