diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index f0d5ed754..c30f02233 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -11,7 +11,7 @@ class DebatesController < ApplicationController def show set_debate_votes(@debate) - @comments = @debate.root_comments.with_hidden.recent + @comments = @debate.root_comments.with_hidden.recent.page(params[:page]) end def new diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb index 964e7d43d..3a29ec96f 100644 --- a/app/views/debates/show.html.erb +++ b/app/views/debates/show.html.erb @@ -88,6 +88,7 @@ <% end %> <%= render @comments %> + <%= paginate @comments %> diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb index b1f311be5..60f06f169 100644 --- a/spec/features/comments_spec.rb +++ b/spec/features/comments_spec.rb @@ -19,6 +19,24 @@ feature 'Comments' do end end + scenario 'Paginated comments' do + debate = create(:debate) + per_page = Kaminari.config.default_per_page + (per_page + 2).times { create(:comment, commentable: debate)} + + visit debate_path(debate) + + expect(page).to have_css('.comment', count: per_page) + within("nav.pagination") do + expect(page).to have_content("1") + expect(page).to have_content("2") + expect(page).to_not have_content("3") + click_link "Next" + end + + expect(page).to have_css('.comment', count: 2) + end + feature 'Not logged user' do scenario 'can not see comments forms' do debate = create(:debate)