Skip to content

Commit 57cd9a3

Browse files
committed
added permissive param to provided searches
1 parent b9c4bb2 commit 57cd9a3

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

lib/spark_api/models/saved_search.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ def contacts
6363
end
6464

6565
def listings(args = {})
66-
arguments = {:_filter => self.Filter}.merge(args)
67-
@listings ||= Listing.collect(connection.get("/listings", arguments))
66+
arguments = {:_filter => self.Filter}
67+
arguments.merge!(:RequestMode => 'permissive') if provided_search?
68+
@listings ||= Listing.collect(connection.get("/listings", arguments.merge(args)))
6869
end
6970

7071
def newsfeeds

spec/unit/spark_api/models/saved_search_spec.rb

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,27 @@
9999
resource.ContactIds.size.should eq(0)
100100
end
101101

102+
describe "listings" do
103+
104+
it "should return the searches listings" do
105+
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
106+
stub_api_get("/listings", 'listings/multiple.json',
107+
{:_filter => "City Eq 'Moorhead' And MlsStatus Eq 'Active' And PropertyType Eq 'A'"})
108+
listings = subject.class.find(id).listings
109+
listings.should be_an(Array)
110+
listings[0].should be_a(Listing)
111+
end
112+
113+
it "should include the permissive parameter for provided searches" do
114+
stub_api_get("/provided/savedsearches/#{id}", 'saved_searches/get.json')
115+
resource = subject.class.provided.find(id)
116+
expect(SparkApi.client).to receive(:get).with("/listings",
117+
{:_filter => resource.Filter, :RequestMode => 'permissive'})
118+
resource.listings
119+
end
120+
121+
end
122+
102123
end
103124

104125
context "/provided/savedsearches", :support do
@@ -139,18 +160,14 @@
139160
describe "can_have_newsfeed?" do
140161

141162
it "should return false for a provided search" do
142-
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
143-
resource = subject.class.find(id)
144-
resource.stub(:provided_search?) { true }
163+
stub_api_get("/provided/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
164+
resource = subject.class.provided.find(id)
145165
resource.can_have_newsfeed?.should == false
146166
end
147167

148168
it "should return false without at least three filter parameters" do
149169
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
150170
resource = subject.class.find(id)
151-
resource.stub(:provided_search?) { false }
152-
resource.stub(:has_active_newsfeed?) { false }
153-
resource.stub(:has_inactive_newsfeed?) { false }
154171
resource.Filter = "City Eq 'Moorhead' And MlsStatus Eq 'Active'"
155172
resource.can_have_newsfeed?.should == false
156173
end
@@ -177,9 +194,8 @@
177194
end
178195

179196
it "should return false for a provided search" do
180-
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
181-
resource = subject.class.find(id)
182-
resource.stub(:provided_search?) { true }
197+
stub_api_get("/provided/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')
198+
resource = subject.class.provided.find(id)
183199
resource.has_active_newsfeed?.should == false
184200
end
185201
end
@@ -195,9 +211,8 @@
195211
end
196212

197213
it "should return false for a provided search" do
198-
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/with_inactive_newsfeed.json')
199-
resource = subject.class.find(id)
200-
resource.stub(:provided_search?) { true }
214+
stub_api_get("/provided/#{subject.class.element_name}/#{id}", 'saved_searches/with_inactive_newsfeed.json')
215+
resource = subject.class.provided.find(id)
201216
resource.has_inactive_newsfeed?.should == false
202217
end
203218
end

0 commit comments

Comments
 (0)