-
+
<% if @search_terms %> diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb new file mode 100644 index 000000000..8ae165d05 --- /dev/null +++ b/spec/features/proposals_spec.rb @@ -0,0 +1,52 @@ +require 'rails_helper' + +feature 'Proposals' do + + scenario 'Index' do + proposal = [create(:proposal), create(:proposal), create(:proposal)] + + visit proposals_path + + expect(page).to have_selector('#proposals .proposal', count: 3) + proposal.each do |proposal| + within('#proposals') do + expect(page).to have_content proposal.title + expect(page).to have_css("a[href='#{proposal_path(proposal)}']", text: proposal.description) + end + end + end + + scenario 'Paginated Index' do + per_page = Kaminari.config.default_per_page + (per_page + 2).times { create(:proposal) } + + visit proposals_path + + expect(page).to have_selector('#proposals .proposal', count: per_page) + + within("ul.pagination") do + expect(page).to have_content("1") + expect(page).to have_content("2") + expect(page).to_not have_content("3") + click_link "Next", exact: false + end + + expect(page).to have_selector('#proposals .proposal', count: 2) + end + + scenario 'Show' do + proposal = create(:proposal) + + visit proposal_path(proposal) + + expect(page).to have_content proposal.title + expect(page).to have_content "Proposal description" + expect(page).to have_content proposal.author.name + expect(page).to have_content I18n.l(proposal.created_at.to_date) + expect(page).to have_selector(avatar(proposal.author.name)) + + within('.social-share-button') do + expect(page.all('a').count).to be(3) # Twitter, Facebook, Google+ + end + end +end \ No newline at end of file