aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/public_body_controller_spec.rb9
-rw-r--r--spec/controllers/request_controller_spec.rb9
-rw-r--r--spec/integration/view_request_spec.rb32
3 files changed, 40 insertions, 10 deletions
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb
index d47ea7b8d..8182e1331 100644
--- a/spec/controllers/public_body_controller_spec.rb
+++ b/spec/controllers/public_body_controller_spec.rb
@@ -177,7 +177,7 @@ describe PublicBodyController, "when doing type ahead searches" do
it "should return nothing for the empty query string" do
get :search_typeahead, :q => ""
response.should render_template('public_body/_search_ahead')
- assigns[:xapian_requests].results.size.should == 0
+ assigns[:xapian_requests].should be_nil
end
it "should return a body matching the given keyword, but not users with a matching description" do
@@ -202,10 +202,9 @@ describe PublicBodyController, "when doing type ahead searches" do
assigns[:xapian_requests].results[0][:model].name.should == public_bodies(:humpadink_public_body).name
end
- it "should return partial matches" do
- get :search_typeahead, :q => "geral" # 'geral' for 'Geraldine'
+ it "should not return matches for short words" do
+ get :search_typeahead, :q => "b"
response.should render_template('public_body/_search_ahead')
- assigns[:xapian_requests].results.size.should == 1
- assigns[:xapian_requests].results[0][:model].name.should == public_bodies(:geraldine_public_body).name
+ assigns[:xapian_requests].should be_nil
end
end
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 9eddbc294..74a55062d 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -1458,7 +1458,7 @@ describe RequestController, "when doing type ahead searches" do
it "should return nothing for the empty query string" do
get :search_typeahead, :q => ""
response.should render_template('request/_search_ahead.rhtml')
- assigns[:xapian_requests].results.size.should == 0
+ assigns[:xapian_requests].should be_nil
end
it "should return a request matching the given keyword, but not users with a matching description" do
@@ -1476,11 +1476,10 @@ describe RequestController, "when doing type ahead searches" do
assigns[:xapian_requests].results[1][:model].title.should == info_requests(:naughty_chicken_request).title
end
- it "should return partial matches" do
- get :search_typeahead, :q => "chick" # 'chick' for 'chicken'
+ it "should not return matches for short words" do
+ get :search_typeahead, :q => "a"
response.should render_template('request/_search_ahead.rhtml')
- assigns[:xapian_requests].results.size.should == 1
- assigns[:xapian_requests].results[0][:model].title.should == info_requests(:naughty_chicken_request).title
+ assigns[:xapian_requests].should be_nil
end
end
diff --git a/spec/integration/view_request_spec.rb b/spec/integration/view_request_spec.rb
new file mode 100644
index 000000000..cf1e4ca6c
--- /dev/null
+++ b/spec/integration/view_request_spec.rb
@@ -0,0 +1,32 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe "When viewing requests" do
+
+ fixtures [
+ :users,
+ :public_bodies,
+ :public_body_translations,
+ :public_body_versions,
+ :info_requests,
+ :raw_emails,
+ :outgoing_messages,
+ :incoming_messages,
+ :comments,
+ :info_request_events,
+ :track_things,
+ ]
+
+ before(:each) do
+ emails = raw_emails.clone
+ load_raw_emails_data(emails)
+ end
+
+ it "should not make endlessly recursive JSON <link>s" do
+ @dog_request = info_requests(:fancy_dog_request)
+ get "request/#{@dog_request.url_title}?unfold=1"
+ response.body.should_not include("dog?unfold=1.json")
+ response.body.should include("dog.json?unfold=1")
+ end
+
+end
+