From 9cc36949f252efe5b45da61fcf39adf334680443 Mon Sep 17 00:00:00 2001 From: juandefelix Date: Mon, 14 Sep 2015 00:06:40 -0500 Subject: [PATCH 1/7] added order and page to session --- app/controllers/debates_controller.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index b336a924a..33d2e0b30 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -13,6 +13,7 @@ class DebatesController < ApplicationController @debates = @debates.page(params[:page]).for_render.send("sort_by_#{@order}") @tag_cloud = Debate.tag_counts.order(taggings_count: :desc, name: :asc).limit(20) set_debate_votes(@debates) + set_return_query_params(@order) end def show @@ -93,6 +94,11 @@ class DebatesController < ApplicationController end end + def set_return_query_params(order) + session[:return_page] = params[:page] if params[:page] + session[:return_order] = order + end + def parse_search_terms @search_terms = params[:search] if params[:search].present? end From 30f54e4c2d9d3cb15b42d6a084320b504065df34 Mon Sep 17 00:00:00 2001 From: juandefelix Date: Mon, 14 Sep 2015 00:08:54 -0500 Subject: [PATCH 2/7] adding session order and page to back link --- app/helpers/debates_helper.rb | 10 ++++++++++ app/views/debates/show.html.erb | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 app/helpers/debates_helper.rb diff --git a/app/helpers/debates_helper.rb b/app/helpers/debates_helper.rb new file mode 100644 index 000000000..019b620e1 --- /dev/null +++ b/app/helpers/debates_helper.rb @@ -0,0 +1,10 @@ +module DebatesHelper + def return_query_params + hash = { order: session.delete(:return_order) } + hash.merge(page_hash) if session[:return_page] + end + + def page_hash + { page: session.delete(:return_page) } + end +end diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb index 83c37964a..f894e3681 100644 --- a/app/views/debates/show.html.erb +++ b/app/views/debates/show.html.erb @@ -3,7 +3,7 @@
  - <%= link_to t("debates.show.back_link"), debates_path, class: 'left back' %> + <%= link_to t("debates.show.back_link"), debates_path(return_query_params), class: 'left back' %> <% if current_user && @debate.editable_by?(current_user) %> <%= link_to edit_debate_path(@debate), class: 'edit-debate button success tiny radius right' do %> From 8481557e934b2088753b6839546afcc0f727d7db Mon Sep 17 00:00:00 2001 From: juandefelix Date: Sat, 19 Sep 2015 18:40:45 -0500 Subject: [PATCH 3/7] rolling back changes --- app/controllers/debates_controller.rb | 6 ------ app/helpers/debates_helper.rb | 10 ---------- 2 files changed, 16 deletions(-) delete mode 100644 app/helpers/debates_helper.rb diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 33d2e0b30..b336a924a 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -13,7 +13,6 @@ class DebatesController < ApplicationController @debates = @debates.page(params[:page]).for_render.send("sort_by_#{@order}") @tag_cloud = Debate.tag_counts.order(taggings_count: :desc, name: :asc).limit(20) set_debate_votes(@debates) - set_return_query_params(@order) end def show @@ -94,11 +93,6 @@ class DebatesController < ApplicationController end end - def set_return_query_params(order) - session[:return_page] = params[:page] if params[:page] - session[:return_order] = order - end - def parse_search_terms @search_terms = params[:search] if params[:search].present? end diff --git a/app/helpers/debates_helper.rb b/app/helpers/debates_helper.rb deleted file mode 100644 index 019b620e1..000000000 --- a/app/helpers/debates_helper.rb +++ /dev/null @@ -1,10 +0,0 @@ -module DebatesHelper - def return_query_params - hash = { order: session.delete(:return_order) } - hash.merge(page_hash) if session[:return_page] - end - - def page_hash - { page: session.delete(:return_page) } - end -end From 85abd92263d23156a6683620bb729be73b5fe91a Mon Sep 17 00:00:00 2001 From: juandefelix Date: Sat, 19 Sep 2015 18:59:41 -0500 Subject: [PATCH 4/7] added test for "Back" link in debates/show page --- spec/features/debates_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 84d7413e0..5eb2ad507 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -50,6 +50,16 @@ feature 'Debates' do end end + scenario 'Show' do + debate = create(:debate, title: 'Test Debate 1') + + visit debates_path( order: :hot_score, page: 1) + find(:xpath, "//a[@href='/debates/#{debate.id}']", match: :first).click + click_link('Back') + + expect(current_url).to include(debates_path order: :hot_score, page: 1) + end + scenario 'Create' do author = create(:user) login_as(author) From 09b751bda92d89ebe7e0cdab413c55da7759259a Mon Sep 17 00:00:00 2001 From: juandefelix Date: Sat, 19 Sep 2015 19:00:11 -0500 Subject: [PATCH 5/7] "Back" link directs to previous page --- app/views/debates/show.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb index f894e3681..e4ecc1c78 100644 --- a/app/views/debates/show.html.erb +++ b/app/views/debates/show.html.erb @@ -3,7 +3,7 @@
  - <%= link_to t("debates.show.back_link"), debates_path(return_query_params), class: 'left back' %> + <%= link_to t("debates.show.back_link"), :back, class: 'left back' %> <% if current_user && @debate.editable_by?(current_user) %> <%= link_to edit_debate_path(@debate), class: 'edit-debate button success tiny radius right' do %> From 311827a83b845daa622d605aa9265c8485fa937b Mon Sep 17 00:00:00 2001 From: juandefelix Date: Sat, 19 Sep 2015 19:03:05 -0500 Subject: [PATCH 6/7] renamed test --- spec/features/debates_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 5eb2ad507..f5238fd68 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -50,7 +50,7 @@ feature 'Debates' do end end - scenario 'Show' do + scenario 'Show: "Back" link directs to previous page' do debate = create(:debate, title: 'Test Debate 1') visit debates_path( order: :hot_score, page: 1) From 5e4f134c7202d156d8bb63faf73b1fbfb0b3c33b Mon Sep 17 00:00:00 2001 From: juandefelix Date: Sat, 19 Sep 2015 20:05:09 -0500 Subject: [PATCH 7/7] added javascript to the test --- spec/features/debates_spec.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index f5238fd68..10b205770 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -50,14 +50,13 @@ feature 'Debates' do end end - scenario 'Show: "Back" link directs to previous page' do + scenario 'Show: "Back" link directs to previous page', :js do debate = create(:debate, title: 'Test Debate 1') - visit debates_path( order: :hot_score, page: 1) + visit debates_path(order: :hot_score, page: 1) find(:xpath, "//a[@href='/debates/#{debate.id}']", match: :first).click - click_link('Back') - - expect(current_url).to include(debates_path order: :hot_score, page: 1) + + expect(find_link('Back')[:href]).to include(debates_path order: :hot_score, page: 1) end scenario 'Create' do