From 7e3dd47d5aaebd10a744b3f069e882bd677e8748 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Thu, 30 Apr 2020 10:55:55 +0700 Subject: [PATCH] Unify budget landing pages There was a big difference between the current budget and a specific budget landing page. This didn't really make too much sense. Also, it was not possible to know how a draft participatory budget will look before it was published. By unifying those two views now they will look quite similar and it will be possible for administrators to preview any draft budget and to know how the budget will look like before actually publishing it. --- .../budgets/budget_component.html.erb | 32 +++++ app/components/budgets/budget_component.rb | 22 ++++ app/controllers/budgets_controller.rb | 9 +- app/helpers/budgets_helper.rb | 12 -- app/views/budgets/index.html.erb | 40 +------ app/views/budgets/results/show.html.erb | 6 +- app/views/budgets/show.html.erb | 76 +----------- config/locales/en/budgets.yml | 5 - config/locales/es/budgets.yml | 5 - spec/system/budgets/ballots_spec.rb | 96 ++++----------- spec/system/budgets/budgets_spec.rb | 45 ++------ spec/system/budgets/investments_spec.rb | 109 +----------------- spec/system/tags/budget_investments_spec.rb | 6 +- 13 files changed, 107 insertions(+), 356 deletions(-) create mode 100644 app/components/budgets/budget_component.html.erb create mode 100644 app/components/budgets/budget_component.rb diff --git a/app/components/budgets/budget_component.html.erb b/app/components/budgets/budget_component.html.erb new file mode 100644 index 000000000..18f84f767 --- /dev/null +++ b/app/components/budgets/budget_component.html.erb @@ -0,0 +1,32 @@ +
+
+
+

<%= budget.name %>

+
+ <%= auto_link_already_sanitized_html wysiwyg(budget.description) %> +
+ +

+ <%= link_to t("budgets.index.section_header.help"), "#section_help" %> +

+
+
+
+ +<%= render Budgets::SubheaderComponent.new(budget) %> +<%= render Budgets::PhasesComponent.new(budget) %> + +
+
+
+ <%= render Budgets::GroupsAndHeadingsComponent.new(budget) %> + + <% unless budget.informing? %> +
+

<%= t("budgets.index.map") %>

+ <%= render_map(nil, "budgets", false, nil, coordinates) %> +
+ <% end %> +
+
+
diff --git a/app/components/budgets/budget_component.rb b/app/components/budgets/budget_component.rb new file mode 100644 index 000000000..83536cfd6 --- /dev/null +++ b/app/components/budgets/budget_component.rb @@ -0,0 +1,22 @@ +class Budgets::BudgetComponent < ApplicationComponent + delegate :wysiwyg, :auto_link_already_sanitized_html, :render_map, to: :helpers + attr_reader :budget + + def initialize(budget) + @budget = budget + end + + private + + def coordinates + return unless budget.present? + + if budget.publishing_prices_or_later? && budget.investments.selected.any? + investments = budget.investments.selected + else + investments = budget.investments + end + + MapLocation.where(investment_id: investments).map(&:json_data) + end +end diff --git a/app/controllers/budgets_controller.rb b/app/controllers/budgets_controller.rb index b7ee1da8a..fd5ecbbd5 100644 --- a/app/controllers/budgets_controller.rb +++ b/app/controllers/budgets_controller.rb @@ -1,13 +1,11 @@ class BudgetsController < ApplicationController include FeatureFlags include BudgetsHelper - include InvestmentFilters feature_flag :budgets before_action :load_budget, only: :show + before_action :load_current_budget, only: :index load_and_authorize_resource - before_action :set_default_investment_filter, only: :show - has_filters investment_filters, only: :show respond_to :html, :js @@ -17,7 +15,6 @@ class BudgetsController < ApplicationController def index @finished_budgets = @budgets.finished.order(created_at: :desc) - @budgets_coordinates = current_budget_map_locations end private @@ -25,4 +22,8 @@ class BudgetsController < ApplicationController def load_budget @budget = Budget.find_by_slug_or_id! params[:id] end + + def load_current_budget + @budget = current_budget + end end diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb index 079599205..6d5751302 100644 --- a/app/helpers/budgets_helper.rb +++ b/app/helpers/budgets_helper.rb @@ -56,18 +56,6 @@ module BudgetsHelper budget.published? || current_user&.administrator? end - def current_budget_map_locations - return unless current_budget.present? - - if current_budget.publishing_prices_or_later? && current_budget.investments.selected.any? - investments = current_budget.investments.selected - else - investments = current_budget.investments - end - - MapLocation.where(investment_id: investments).map(&:json_data) - end - def display_calculate_winners_button?(budget) budget.balloting_or_later? end diff --git a/app/views/budgets/index.html.erb b/app/views/budgets/index.html.erb index 68a798304..53f65ea9f 100644 --- a/app/views/budgets/index.html.erb +++ b/app/views/budgets/index.html.erb @@ -6,42 +6,12 @@ <%= render "shared/canonical", href: budgets_url %> <% end %> -<% if current_budget.present? %> -
-
-
-

<%= current_budget.name %>

-
- <%= auto_link_already_sanitized_html wysiwyg(current_budget.description) %> -
-

- <%= link_to t("budgets.index.section_header.help"), "#section_help" %> -

-
-
-
+<% if @budget.present? %> + <%= render Budgets::BudgetComponent.new(@budget) %> - <%= render Budgets::SubheaderComponent.new(current_budget) %> - <%= render Budgets::PhasesComponent.new(current_budget) %> - -
-
-
- <%= render Budgets::GroupsAndHeadingsComponent.new(current_budget) %> - - <% unless current_budget.informing? %> -
-

<%= t("budgets.index.map") %>

- <%= render_map(nil, "budgets", false, nil, @budgets_coordinates) %> -
- <% end %> -
-
- - <% if @finished_budgets.present? %> - <%= render "finished", budgets: @finished_budgets %> - <% end %> -
+ <% if @finished_budgets.present? %> + <%= render "finished", budgets: @finished_budgets %> + <% end %> <% else %>
diff --git a/app/views/budgets/results/show.html.erb b/app/views/budgets/results/show.html.erb index 420683ffc..605309c1b 100644 --- a/app/views/budgets/results/show.html.erb +++ b/app/views/budgets/results/show.html.erb @@ -61,13 +61,13 @@ <% end %>

- <%= link_to budget_path(@budget) do %> + <%= link_to budget_investments_path(@budget, heading_id: @heading) do %> <%= t("budgets.results.investment_proyects") %> <% end %>
- <%= link_to budget_path(@budget, filter: "unfeasible") do %> + <%= link_to budget_investments_path(@budget, heading_id: @heading, filter: "unfeasible") do %> <%= t("budgets.results.unfeasible_investment_proyects") %> <% end %>
- <%= link_to budget_path(@budget, filter: "unselected") do %> + <%= link_to budget_investments_path(@budget, heading_id: @heading, filter: "unselected") do %> <%= t("budgets.results.not_selected_investment_proyects") %> <% end %>

diff --git a/app/views/budgets/show.html.erb b/app/views/budgets/show.html.erb index 73f444bec..36ce55708 100644 --- a/app/views/budgets/show.html.erb +++ b/app/views/budgets/show.html.erb @@ -1,75 +1,9 @@ +<%= render Shared::BannerComponent.new("budgets") %> +<% provide :title do %><%= @budget.name %><% end %> + <% content_for :canonical do %> <%= render "shared/canonical", href: budget_url(@budget, filter: @current_filter) %> <% end %> -
-
-
- <%= back_link_to budgets_path %> - -

<%= @budget.name %>

- - <%= auto_link_already_sanitized_html wysiwyg(@budget.description) %> -
-
-
- -<%= render Budgets::SubheaderComponent.new(@budget) %> - -
-
- <% if @current_filter == "unfeasible" %> -

<%= t("budgets.show.unfeasible_title") %>

- <% elsif @current_filter == "unselected" %> -

<%= t("budgets.show.unselected_title") %>

- <% end %> - - - - - - <% @budget.groups.each do |group| %> - - - - <% end %> - -
<%= t("budgets.show.group") %>
- <% if group.single_heading_group? %> - <%= link_to group.name, - budget_investments_path(@budget, - heading_id: group.headings.first.id, - filter: @current_filter) %> - <% else %> - <%= link_to group.name, - budget_group_path(@budget, group, - filter: @current_filter) %> - <% end %> -
-
-
-
- -<% if @budget.balloting_or_later? %> - <% unless @current_filter == "unfeasible" %> -
-
- - <%= link_to t("budgets.show.unfeasible"), - budget_path(@budget, filter: "unfeasible") %> - -
-
- <% end %> - - <% unless @current_filter == "unselected" %> -
-
- - <%= link_to t("budgets.show.unselected"), - budget_path(@budget, filter: "unselected") %> - -
-
- <% end %> -<% end %> +<%= render Budgets::BudgetComponent.new(@budget) %> +<%= render Budgets::FooterComponent.new %> diff --git a/config/locales/en/budgets.yml b/config/locales/en/budgets.yml index 7931cc773..1ff9bce72 100644 --- a/config/locales/en/budgets.yml +++ b/config/locales/en/budgets.yml @@ -178,11 +178,6 @@ en: one: "You have selected 1 project out of %{limit}" other: "You have selected %{count} projects out of %{limit}" show: - group: Group - unfeasible_title: Unfeasible investments - unfeasible: See unfeasible investments - unselected_title: Investments not selected for balloting phase - unselected: See investments not selected for balloting phase see_results: See results results: link: Results diff --git a/config/locales/es/budgets.yml b/config/locales/es/budgets.yml index 98eda05f9..c05eaae6b 100644 --- a/config/locales/es/budgets.yml +++ b/config/locales/es/budgets.yml @@ -178,11 +178,6 @@ es: one: "Has seleccionado 1 proyecto de %{limit}" other: "Has seleccionado %{count} proyectos de %{limit}" show: - group: Grupo - unfeasible_title: Proyectos de gasto inviables - unfeasible: Ver los proyectos inviables - unselected_title: Proyectos no seleccionados para la votación final - unselected: Ver los proyectos no seleccionados para la votación final see_results: Ver resultados results: link: Resultados diff --git a/spec/system/budgets/ballots_spec.rb b/spec/system/budgets/ballots_spec.rb index a6c737770..2d9a6df07 100644 --- a/spec/system/budgets/ballots_spec.rb +++ b/spec/system/budgets/ballots_spec.rb @@ -62,13 +62,6 @@ describe "Ballots" do let!(:districts) { create(:budget_group, budget: budget, name: "Districts") } context "Group and Heading Navigation" do - scenario "Groups" do - visit budget_path(budget) - - expect(page).to have_link "City" - expect(page).to have_link "Districts" - end - scenario "Headings" do create(:budget_heading, group: city, name: "Investments Type1") create(:budget_heading, group: city, name: "Investments Type2") @@ -76,16 +69,13 @@ describe "Ballots" do create(:budget_heading, group: districts, name: "District 2") visit budget_path(budget) - click_link "City" - expect(page).to have_link "Investments Type1" - expect(page).to have_link "Investments Type2" - - visit budget_path(budget) - click_link "Districts" - - expect(page).to have_link "District 1" - expect(page).to have_link "District 2" + within("#groups_and_headings") do + expect(page).to have_link "Investments Type1" + expect(page).to have_link "Investments Type2" + expect(page).to have_link "District 1" + expect(page).to have_link "District 2" + end end scenario "Investments" do @@ -106,7 +96,6 @@ describe "Ballots" do end visit budget_path(budget) - click_link "City" click_link "Above the city" expect(page).to have_css(".budget-investment", count: 2) @@ -114,8 +103,6 @@ describe "Ballots" do expect(page).to have_content "Observatory" visit budget_path(budget) - - click_link "Districts" click_link "District 1" expect(page).to have_css(".budget-investment", count: 2) @@ -123,22 +110,11 @@ describe "Ballots" do expect(page).to have_content "Zero-emission zone" visit budget_path(budget) - click_link "Districts" click_link "District 2" expect(page).to have_css(".budget-investment", count: 1) expect(page).to have_content "Climbing wall" end - - scenario "Redirect to first heading if there is only one" do - city_heading = create(:budget_heading, group: city, name: "City") - city_investment = create(:budget_investment, :selected, heading: city_heading) - - visit budget_path(budget) - click_link "City" - - expect(page).to have_content city_investment.title - end end context "Adding and Removing Investments" do @@ -146,10 +122,7 @@ describe "Ballots" do create(:budget_investment, :selected, heading: new_york, price: 10000, title: "Bring back King Kong") create(:budget_investment, :selected, heading: new_york, price: 20000, title: "Paint cabs black") - visit budget_path(budget) - click_link "States" - click_link "New York" - + visit budget_investments_path(budget, heading_id: new_york) add_to_ballot("Bring back King Kong") expect(page).to have_css("#amount-spent", text: "€10,000") @@ -176,9 +149,7 @@ describe "Ballots" do scenario "Removing a investment", :js do investment = create(:budget_investment, :selected, heading: new_york, price: 10000, balloters: [user]) - visit budget_path(budget) - click_link "States" - click_link "New York" + visit budget_investments_path(budget, heading_id: new_york) expect(page).to have_content investment.title expect(page).to have_css("#amount-spent", text: "€10,000") @@ -207,9 +178,7 @@ describe "Ballots" do scenario "the Map shoud be visible before and after", :js do create(:budget_investment, :selected, heading: new_york, price: 10000, title: "More bridges") - visit budget_path(budget) - click_link "States" - click_link "New York" + visit budget_investments_path(budget, heading_id: new_york) within("#sidebar") do expect(page).to have_content "OpenStreetMap" @@ -244,8 +213,7 @@ describe "Ballots" do create(:budget_investment, :selected, heading: district_heading1, price: 20000, title: "Average") create(:budget_investment, :selected, heading: district_heading2, price: 30000, title: "Expensive") - visit budget_path(budget) - click_link "City" + visit budget_investments_path(budget, heading_id: city_heading) add_to_ballot("Cheap") @@ -257,9 +225,7 @@ describe "Ballots" do expect(page).to have_content "€10,000" end - visit budget_path(budget) - click_link "Districts" - click_link "District 1" + visit budget_investments_path(budget, heading_id: district_heading1) expect(page).to have_css("#amount-spent", text: "€0") expect(page).to have_css("#amount-spent", text: "€1,000,000") @@ -277,8 +243,7 @@ describe "Ballots" do expect(page).not_to have_content "€10,000" end - visit budget_path(budget) - click_link "City" + visit budget_investments_path(budget, heading_id: city_heading) expect(page).to have_css("#amount-spent", text: "€10,000") expect(page).to have_css("#amount-available", text: "€9,990,000") @@ -291,9 +256,7 @@ describe "Ballots" do expect(page).not_to have_content "€20,000" end - visit budget_path(budget) - click_link "Districts" - click_link "District 2" + visit budget_investments_path(budget, heading_id: district_heading2) expect(page).to have_content("You have active votes in another heading: District 1") end @@ -318,14 +281,11 @@ describe "Ballots" do scenario "Select my heading", :js do create(:budget_investment, :selected, heading: california, title: "Green beach") - visit budget_path(budget) - click_link "States" - click_link "California" + visit budget_investments_path(budget, heading_id: california) add_to_ballot("Green beach") - visit budget_path(budget) - click_link "States" + visit budget_group_path(budget, states) expect(page).to have_content "California" expect(page).to have_css("#budget_heading_#{california.id}.is-active") @@ -346,8 +306,8 @@ describe "Ballots" do add_to_ballot("Avengers Tower") - visit budget_path(budget) - click_link "States" + visit budget_group_path(budget, states) + expect(page).to have_css("#budget_heading_#{new_york.id}.is-active") expect(page).not_to have_css("#budget_heading_#{california.id}.is-active") end @@ -364,16 +324,6 @@ describe "Ballots" do end context "Showing the ballot" do - scenario "Do not display heading name if there is only one heading in the group (example: group city)" do - group = create(:budget_group, budget: budget) - heading = create(:budget_heading, group: group) - visit budget_path(budget) - click_link group.name - # No need to click on the heading name - expect(page).to have_content("Investment projects with scope: #{heading.name}") - expect(page).to have_current_path(budget_investments_path(budget), ignore_query: true) - end - scenario "Displaying the correct group, heading, count & amount" do group1 = create(:budget_group, budget: budget) group2 = create(:budget_group, budget: budget) @@ -543,9 +493,7 @@ describe "Ballots" do investment = create(:budget_investment, heading: new_york, title: "WTF asdfasfd") login_as(user) - visit budget_path(budget) - click_link states.name - click_link new_york.name + visit budget_investments_path(budget, heading_id: new_york) expect(page).not_to have_css("#budget_investment_#{investment.id}") end @@ -554,9 +502,7 @@ describe "Ballots" do investment = create(:budget_investment, :undecided, heading: new_york) login_as(user) - visit budget_path(budget) - click_link states.name - click_link new_york.name + visit budget_investments_path(budget, heading_id: new_york) within("#budget-investments") do expect(page).not_to have_css("div.ballot") @@ -682,9 +628,7 @@ describe "Ballots" do in_browser(:user) do login_as user - visit budget_path(budget) - click_link "States" - click_link "New York" + visit budget_investments_path(budget, heading_id: new_york) expect(page).to have_css(".in-favor a") end diff --git a/spec/system/budgets/budgets_spec.rb b/spec/system/budgets/budgets_spec.rb index 15e142afd..922449988 100644 --- a/spec/system/budgets/budgets_spec.rb +++ b/spec/system/budgets/budgets_spec.rb @@ -307,7 +307,7 @@ describe "Budgets" do map_locations << { longitude: 40.123456789, latitude: "********" } map_locations << { longitude: "**********", latitude: 3.12345678 } - budget_map_locations = map_locations.map do |map_location| + coordinates = map_locations.map do |map_location| { lat: map_location[:latitude], long: map_location[:longitude], @@ -317,8 +317,7 @@ describe "Budgets" do } end - allow_any_instance_of(BudgetsHelper). - to receive(:current_budget_map_locations).and_return(budget_map_locations) + allow_any_instance_of(Budgets::BudgetComponent).to receive(:coordinates).and_return(coordinates) visit budgets_path @@ -329,61 +328,32 @@ describe "Budgets" do end context "Show" do - scenario "List all groups" do - create(:budget_group, budget: budget) - create(:budget_group, budget: budget) - - visit budget_path(budget) - - budget.groups.each { |group| expect(page).to have_link(group.name) } - end - scenario "Links to unfeasible and selected if balloting or later" do budget = create(:budget, :selecting) group = create(:budget_group, budget: budget) - visit budget_path(budget) - - expect(page).not_to have_link "See unfeasible investments" - expect(page).not_to have_link "See investments not selected for balloting phase" - - click_link group.name + visit budget_group_path(budget, group) expect(page).not_to have_link "See unfeasible investments" expect(page).not_to have_link "See investments not selected for balloting phase" budget.update!(phase: :publishing_prices) - visit budget_path(budget) - - expect(page).not_to have_link "See unfeasible investments" - expect(page).not_to have_link "See investments not selected for balloting phase" - - click_link group.name + visit budget_group_path(budget, group) expect(page).not_to have_link "See unfeasible investments" expect(page).not_to have_link "See investments not selected for balloting phase" budget.update!(phase: :balloting) - visit budget_path(budget) - - expect(page).to have_link "See unfeasible investments" - expect(page).to have_link "See investments not selected for balloting phase" - - click_link group.name + visit budget_group_path(budget, group) expect(page).to have_link "See unfeasible investments" expect(page).to have_link "See investments not selected for balloting phase" budget.update!(phase: :finished) - visit budget_path(budget) - - expect(page).to have_link "See unfeasible investments" - expect(page).to have_link "See investments not selected for balloting phase" - - click_link group.name + visit budget_group_path(budget, group) expect(page).to have_link "See unfeasible investments" expect(page).to have_link "See investments not selected for balloting phase" @@ -399,8 +369,7 @@ describe "Budgets" do heading3 = create(:budget_heading, group: group2, name: "Brooklyn") heading4 = create(:budget_heading, group: group2, name: "Queens") - visit budget_path(budget) - click_link "New York" + visit budget_group_path(budget, group1) expect(page).to have_css("#budget_heading_#{heading1.id}") expect(page).to have_css("#budget_heading_#{heading2.id}") diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb index 5cdfb9b8d..08cdad36f 100644 --- a/spec/system/budgets/investments_spec.rb +++ b/spec/system/budgets/investments_spec.rb @@ -78,7 +78,7 @@ describe "Budget Investments" do unfeasible_investment = create(:budget_investment, :unfeasible, heading: heading) visit budget_path(budget) - click_link "Health" + click_link "More hospitals" expect(page).to have_selector("#budget-investments .budget-investment", count: 3) investments.each do |investment| @@ -95,11 +95,9 @@ describe "Budget Investments" do create(:budget_investment, heading: heading), create(:budget_investment, heading: heading)] - visit budget_path(budget) - click_link "Health" + visit budget_investments_path(budget, heading_id: heading) click_button "View mode" - click_link "List" investments.each do |investment| @@ -110,7 +108,6 @@ describe "Budget Investments" do end click_button "View mode" - click_link "Cards" investments.each do |investment| @@ -238,47 +235,6 @@ describe "Budget Investments" do end end - scenario "by unfeasibilty link for group with one heading" do - budget.update!(phase: :balloting) - group = create(:budget_group, name: "All City", budget: budget) - heading = create(:budget_heading, name: "Madrid", group: group) - - visit budget_path(budget) - click_link "See unfeasible investments" - - click_link "All City" - - expected_path = budget_investments_path(budget, heading_id: heading.id, filter: "unfeasible") - expect(page).to have_current_path(expected_path) - end - - scenario "by unfeasibilty link for group with many headings" do - budget.update!(phase: :balloting) - group = create(:budget_group, name: "Districts", budget: budget) - - barajas = create(:budget_heading, name: "Barajas", group: group) - carabanchel = create(:budget_heading, name: "Carabanchel", group: group) - - create(:budget_investment, :feasible, heading: barajas, title: "Terminal 5") - create(:budget_investment, :unfeasible, heading: barajas, title: "Seaport") - create(:budget_investment, :unfeasible, heading: carabanchel, title: "Airport") - - visit budget_path(budget) - - click_link "See unfeasible investments" - - click_link "Districts" - click_link "Barajas" - - within("#budget-investments") do - expect(page).to have_css(".budget-investment", count: 1) - - expect(page).to have_content "Seaport" - expect(page).not_to have_content "Terminal 5" - expect(page).not_to have_content "Airport" - end - end - context "Results Phase" do before { budget.update(phase: "finished", results_enabled: true) } @@ -286,8 +242,7 @@ describe "Budget Investments" do investment1 = create(:budget_investment, :winner, heading: heading) investment2 = create(:budget_investment, :selected, heading: heading) - visit budget_path(budget) - click_link "Health" + visit budget_investments_path(budget, heading_id: heading) within("#budget-investments") do expect(page).to have_css(".budget-investment", count: 1) @@ -297,7 +252,6 @@ describe "Budget Investments" do visit budget_results_path(budget) click_link "List of all investment projects" - click_link "Health" within("#budget-investments") do expect(page).to have_css(".budget-investment", count: 1) @@ -312,7 +266,6 @@ describe "Budget Investments" do visit budget_results_path(budget) click_link "List of all unfeasible investment projects" - click_link "Health" within("#budget-investments") do expect(page).to have_css(".budget-investment", count: 1) @@ -327,7 +280,6 @@ describe "Budget Investments" do visit budget_results_path(budget) click_link "List of all investment projects not selected for balloting" - click_link "Health" within("#budget-investments") do expect(page).to have_css(".budget-investment", count: 1) @@ -1305,19 +1257,12 @@ describe "Budget Investments" do create(:budget_investment, :selected, price: 100000, heading: new_york_heading, title: "NASA base") login_as(user) - visit budget_path(budget) - - click_link "Global Group" - # No need to click_link "Global Heading" because the link of a group with a single heading - # points to the list of investments directly + visit budget_investments_path(budget, heading: global_heading) add_to_ballot("World T-Shirt") add_to_ballot("Eco pens") - visit budget_path(budget) - - click_link "Health" - click_link "Carabanchel" + visit budget_investments_path(budget, heading: carabanchel_heading) add_to_ballot("Fireworks") add_to_ballot("Bus pass") @@ -1360,10 +1305,7 @@ describe "Budget Investments" do create(:budget_investment, :selected, heading: heading_1, title: "Zero-emission zone") login_as(user) - visit budget_path(budget) - - click_link "Health" - click_link "Heading 1" + visit budget_investments_path(budget, heading_id: heading_1) add_to_ballot("Zero-emission zone") @@ -1413,45 +1355,6 @@ describe "Budget Investments" do end end - scenario "Shows unselected link for group with one heading" do - group = create(:budget_group, name: "All City", budget: budget) - heading = create(:budget_heading, name: "Madrid", group: group) - - visit budget_path(budget) - click_link "See investments not selected for balloting phase" - - click_link "All City" - - expected_path = budget_investments_path(budget, heading_id: heading.id, filter: "unselected") - expect(page).to have_current_path(expected_path) - end - - scenario "Shows unselected link for group with many headings" do - group = create(:budget_group, name: "Districts", budget: budget) - - barajas = create(:budget_heading, name: "Barajas", group: group) - carabanchel = create(:budget_heading, name: "Carabanchel", group: group) - - create(:budget_investment, :selected, heading: barajas, title: "Terminal 5") - create(:budget_investment, :unselected, heading: barajas, title: "Seaport") - create(:budget_investment, :unselected, heading: carabanchel, title: "Airport") - - visit budget_path(budget) - - click_link "See investments not selected for balloting phase" - - click_link "Districts" - click_link "Barajas" - - within("#budget-investments") do - expect(page).to have_css(".budget-investment", count: 1) - - expect(page).to have_content "Seaport" - expect(page).not_to have_content "Terminal 5" - expect(page).not_to have_content "Airport" - end - end - scenario "Do not display vote button for unselected investments in index" do investment = create(:budget_investment, :unselected, heading: heading) diff --git a/spec/system/tags/budget_investments_spec.rb b/spec/system/tags/budget_investments_spec.rb index 6abd533df..032c60ab5 100644 --- a/spec/system/tags/budget_investments_spec.rb +++ b/spec/system/tags/budget_investments_spec.rb @@ -256,8 +256,7 @@ describe "Tags" do end login_as(admin) if budget.drafting? - visit budget_path(budget) - click_link group.name + visit budget_investments_path(budget, heading: heading.id) within "#tag-cloud" do click_link new_tag @@ -305,8 +304,7 @@ describe "Tags" do end login_as(admin) if budget.drafting? - visit budget_path(budget) - click_link group.name + visit budget_investments_path(budget, heading: heading.id) within "#categories" do click_link tag_medio_ambiente.name