From 2a286c6b331d343b6ce07c0c4ec8fff509c4503e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 23 Oct 2015 12:56:09 +0200 Subject: [PATCH] shows proposal view inside management layout --- app/helpers/proposals_helper.rb | 10 +++ app/views/proposals/_proposal.html.erb | 6 +- spec/features/management/proposals_spec.rb | 84 ++++++++++++++++------ spec/features/proposals_spec.rb | 1 + 4 files changed, 76 insertions(+), 25 deletions(-) diff --git a/app/helpers/proposals_helper.rb b/app/helpers/proposals_helper.rb index 42090a276..d4d7bca64 100644 --- a/app/helpers/proposals_helper.rb +++ b/app/helpers/proposals_helper.rb @@ -18,4 +18,14 @@ module ProposalsHelper end end + def namespaced_proposal_path(proposal, options={}) + @namespace_proposal_path ||= namespace + case @namespace_proposal_path + when "management" + management_proposal_path(proposal, options) + else + proposal_path(proposal, options) + end + end + end \ No newline at end of file diff --git a/app/views/proposals/_proposal.html.erb b/app/views/proposals/_proposal.html.erb index ac2f0ec2f..89e1b3b0e 100644 --- a/app/views/proposals/_proposal.html.erb +++ b/app/views/proposals/_proposal.html.erb @@ -6,10 +6,10 @@
<%= t("proposals.proposal.proposal") %> -

<%= link_to proposal.title, proposal %>

+

<%= link_to proposal.title, namespaced_proposal_path(proposal) %>

  - <%= link_to t("proposals.proposal.comments", count: proposal.comments_count), proposal_path(proposal, anchor: "comments") %> + <%= link_to t("proposals.proposal.comments", count: proposal.comments_count), namespaced_proposal_path(proposal, anchor: "comments") %>  •  <%= l proposal.created_at.to_date %> @@ -39,7 +39,7 @@ <% end %>

-

<%= link_to proposal.summary, proposal %>

+

<%= link_to proposal.summary, namespaced_proposal_path(proposal) %>

<%= render "shared/tags", taggable: proposal, limit: 5 %> diff --git a/spec/features/management/proposals_spec.rb b/spec/features/management/proposals_spec.rb index 46411c7af..2a296cf5f 100644 --- a/spec/features/management/proposals_spec.rb +++ b/spec/features/management/proposals_spec.rb @@ -49,9 +49,52 @@ feature 'Proposals' do end end + scenario "Searching" do + proposal1 = create(:proposal, title: "Show me what you got") + proposal2 = create(:proposal, title: "Get Schwifty") + + user = create(:user, :level_two) + login_managed_user(user) + + click_link "Support proposals" + + fill_in "search", with: "what you got" + click_button "Search" + + expect(current_path).to eq(management_proposals_path) + + within("#proposals") do + expect(page).to have_css('.proposal', count: 1) + expect(page).to have_content(proposal1.title) + expect(page).to_not have_content(proposal2.title) + expect(page).to have_css("a[href='#{management_proposal_path(proposal1)}']", text: proposal1.title) + expect(page).to have_css("a[href='#{management_proposal_path(proposal1)}']", text: proposal1.summary) + end + end + + scenario "Listing" do + proposal1 = create(:proposal, title: "Show me what you got") + proposal2 = create(:proposal, title: "Get Schwifty") + + user = create(:user, :level_two) + login_managed_user(user) + + click_link "Support proposals" + + expect(current_path).to eq(management_proposals_path) + + within("#proposals") do + expect(page).to have_css('.proposal', count: 2) + expect(page).to have_css("a[href='#{management_proposal_path(proposal1)}']", text: proposal1.title) + expect(page).to have_css("a[href='#{management_proposal_path(proposal1)}']", text: proposal1.summary) + expect(page).to have_css("a[href='#{management_proposal_path(proposal2)}']", text: proposal2.title) + expect(page).to have_css("a[href='#{management_proposal_path(proposal2)}']", text: proposal2.summary) + end + end + context "Voting" do - scenario 'Voting proposals on behalf of someone', :js do + scenario 'Voting proposals on behalf of someone in index view', :js do proposal = create(:proposal) user = create(:user, :level_two) @@ -68,6 +111,24 @@ feature 'Proposals' do expect(URI.parse(current_url).path).to eq(management_proposals_path) end + scenario 'Voting proposals on behalf of someone in show view', :js do + proposal = create(:proposal) + + user = create(:user, :level_two) + login_managed_user(user) + + click_link "Support proposals" + + within("#proposals") do + click_link proposal.title + end + + find('.in-favor a').click + expect(page).to have_content "1 support" + expect(page).to have_content "You already supported this proposal" + expect(current_path).to eq(management_proposal_path(proposal)) + end + scenario "Should not allow unverified users to vote proposals" do proposal = create(:proposal) @@ -78,27 +139,6 @@ feature 'Proposals' do expect(page).to have_content "User is not verified" end - - scenario "Searching" do - proposal1 = create(:proposal, title: "Show me what you got") - proposal2 = create(:proposal, title: "Get Schwifty") - - user = create(:user, :level_two) - login_managed_user(user) - - click_link "Support proposals" - - fill_in "search", with: "what you got" - click_button "Search" - - expect(current_path).to eq(management_proposals_path) - - within("#proposals") do - expect(page).to have_css('.proposal', count: 1) - expect(page).to have_content(proposal1.title) - expect(page).to_not have_content(proposal2.title) - end - end end context "Printing" do diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 8706afd42..5b83e37b3 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -20,6 +20,7 @@ feature 'Proposals' do proposals.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.title) expect(page).to have_css("a[href='#{proposal_path(proposal)}']", text: proposal.summary) end end