From 400fa98d355bf53b702f1a87fe9d8079d95170f3 Mon Sep 17 00:00:00 2001 From: Miles Gould Date: Fri, 29 Mar 2013 15:36:34 +0000 Subject: [PATCH] Basic controller and view tests for "nearby members" --- spec/controllers/member_controller_spec.rb | 8 ++++ spec/views/members/nearby.html.haml_spec.rb | 53 +++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 spec/views/members/nearby.html.haml_spec.rb diff --git a/spec/controllers/member_controller_spec.rb b/spec/controllers/member_controller_spec.rb index 7cfa48c6a..618308137 100644 --- a/spec/controllers/member_controller_spec.rb +++ b/spec/controllers/member_controller_spec.rb @@ -57,4 +57,12 @@ describe MembersController do end end + describe "GET nearby members" do + it "assigns the current member as nearby" do + controller.stub(:current_member) { @member } + get :nearby, {:id => @member.id} + assigns(:nearby_members).should == [@member] + end + end + end diff --git a/spec/views/members/nearby.html.haml_spec.rb b/spec/views/members/nearby.html.haml_spec.rb new file mode 100644 index 000000000..5cabb9688 --- /dev/null +++ b/spec/views/members/nearby.html.haml_spec.rb @@ -0,0 +1,53 @@ +require 'spec_helper' + +describe "members/nearby" do + before(:each) do + @member = FactoryGirl.create(:geolocated_member) + controller.stub(:current_user) { @member } + controller.stub(:current_member) { @member } + @nearby_members = [FactoryGirl.create(:member)] + end + + context "when the epicentre is the member's location" do + before(:each) do + @location = @member.location + render + end + + it "shows the member's location in the textbox" do + assert_select "#location", :value => @location + end + + it "shows 'Members near you' instead of naming the place" do + view.content_for(:title).should == "Members near you" + end + + it "shows the names of nearby members" do + @nearby_members.each do |m| + rendered.should contain m.login_name + end + end + end + + context "when the epicentre is somewhere else" do + before(:each) do + @location = "Rothera base, Adelaide Island, Antarctica" + render + end + + it "shows the selected location" do + view.content_for(:title).should == "Members near #{@location}" + end + + it "shows the selected location in the textbox" do + assert_select "#location", :value => @location + end + + it "shows the names of nearby members" do + @nearby_members.each do |m| + rendered.should contain m.login_name + end + end + end + +end