diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 8ff6949cb..71b2ac9ce 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -70,7 +70,6 @@ //= require advanced_search //= require registration_form //= require suggest -//= require filter_selector //= require forms //= require valuation_budget_investment_form //= require embed_video @@ -135,7 +134,6 @@ var initialize_modules = function() { App.RegistrationForm.initialize(); App.Suggest.initialize(); App.Forms.initialize(); - App.FilterSelector.initialize(); App.ValuationBudgetInvestmentForm.initialize(); App.EmbedVideo.initialize(); App.FixedBar.initialize(); diff --git a/app/assets/javascripts/filter_selector.js b/app/assets/javascripts/filter_selector.js deleted file mode 100644 index 5f35db45c..000000000 --- a/app/assets/javascripts/filter_selector.js +++ /dev/null @@ -1,8 +0,0 @@ -(function() { - "use strict"; - App.FilterSelector = { - initialize: function() { - App.Forms.submitOnChange(".filter-selector select"); - } - }; -}).call(this); diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index f438ea3a2..91837158a 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -27,7 +27,6 @@ @import "milestones"; @import "pages"; @import "dashboard"; -@import "filter_selector"; @import "legislation"; @import "legislation_process"; @import "legislation_process_form"; diff --git a/app/assets/stylesheets/budgets/investmentss/filters.scss b/app/assets/stylesheets/budgets/investmentss/filters.scss new file mode 100644 index 000000000..a00be0801 --- /dev/null +++ b/app/assets/stylesheets/budgets/investmentss/filters.scss @@ -0,0 +1,19 @@ +.investments-filters { + border-top: 1px solid $border; + + ul { + font-size: $small-font-size; + list-style: none; + margin-left: 0; + + a { + display: inline-block; + padding-bottom: $line-height / 4; + padding-top: $line-height / 4; + } + + [aria-current] { + font-weight: bold; + } + } +} diff --git a/app/assets/stylesheets/filter_selector.scss b/app/assets/stylesheets/filter_selector.scss deleted file mode 100644 index 10de18b25..000000000 --- a/app/assets/stylesheets/filter_selector.scss +++ /dev/null @@ -1,14 +0,0 @@ -.filter-selector { - text-align: right; - - label { - display: inline-block; - font-size: $small-font-size; - margin-right: $line-height / 2; - padding-top: $line-height / 2; - } - - select { - width: auto; - } -} diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index d80c57799..45a7c45df 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -977,13 +977,6 @@ footer { } } -.sidebar-map { - - .map { - z-index: 0; - } -} - .sidebar-title { border-top: 2px solid $brand; display: inline-block; diff --git a/app/components/budgets/investments/filters_component.html.erb b/app/components/budgets/investments/filters_component.html.erb new file mode 100644 index 000000000..7667d5cd4 --- /dev/null +++ b/app/components/budgets/investments/filters_component.html.erb @@ -0,0 +1,4 @@ +
+ + <%= link_list(*filters, "aria-labelledby": "investments_filters_header") %> +
diff --git a/app/components/budgets/investments/filters_component.rb b/app/components/budgets/investments/filters_component.rb new file mode 100644 index 000000000..12c6ddde8 --- /dev/null +++ b/app/components/budgets/investments/filters_component.rb @@ -0,0 +1,19 @@ +class Budgets::Investments::FiltersComponent < ApplicationComponent + delegate :valid_filters, :current_filter, :link_list, :current_path_with_query_params, to: :helpers + + def render? + valid_filters&.any? + end + + private + + def filters + valid_filters.map do |filter| + [ + t("budgets.investments.index.filters.#{filter}"), + current_path_with_query_params(filter: filter, page: 1), + current_filter == filter + ] + end + end +end diff --git a/app/components/shared/filter_selector_component.html.erb b/app/components/shared/filter_selector_component.html.erb deleted file mode 100644 index f8cdd6dee..000000000 --- a/app/components/shared/filter_selector_component.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -<%= form_tag({}, method: :get, enforce_utf8: false, class: "filter-selector") do %> - <%= query_parameters_tags %> - <%= label_tag "filter_selector_filter", t("#{i18n_namespace}.filter") %> - <%= select_tag "filter", options_for_select(filter_options, current_filter), id: "filter_selector_filter" %> -<% end %> diff --git a/app/components/shared/filter_selector_component.rb b/app/components/shared/filter_selector_component.rb deleted file mode 100644 index 6ea316a62..000000000 --- a/app/components/shared/filter_selector_component.rb +++ /dev/null @@ -1,22 +0,0 @@ -class Shared::FilterSelectorComponent < ApplicationComponent - delegate :valid_filters, :current_filter, to: :helpers - attr_reader :i18n_namespace - - def initialize(i18n_namespace:) - @i18n_namespace = i18n_namespace - end - - private - - def query_parameters_tags - safe_join(request.query_parameters.reject do |name, _| - ["page", "filter"].include?(name) - end.map do |name, value| - hidden_field_tag name, value, id: "filter_selector_#{name}" - end) - end - - def filter_options - valid_filters.map { |filter| [t("#{i18n_namespace}.filters.#{filter}"), filter] } - end -end diff --git a/app/controllers/budgets/groups_controller.rb b/app/controllers/budgets/groups_controller.rb index 5fc81d0fb..542be0fb6 100644 --- a/app/controllers/budgets/groups_controller.rb +++ b/app/controllers/budgets/groups_controller.rb @@ -1,6 +1,5 @@ module Budgets class GroupsController < ApplicationController - include InvestmentFilters include FeatureFlags feature_flag :budgets @@ -9,9 +8,6 @@ module Budgets authorize_resource :budget authorize_resource :group, class: "Budget::Group" - before_action :set_default_investment_filter, only: :show - has_filters investment_filters, only: [:show] - def show end diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb index 43916bbb4..e3d82cb6f 100644 --- a/app/controllers/budgets/investments_controller.rb +++ b/app/controllers/budgets/investments_controller.rb @@ -8,7 +8,6 @@ module Budgets include DocumentAttributes include MapLocationAttributes include Translatable - include InvestmentFilters PER_PAGE = 10 @@ -33,8 +32,7 @@ module Budgets has_orders %w[most_voted newest oldest], only: :show has_orders ->(c) { c.instance_variable_get(:@budget).investments_orders }, only: :index - - has_filters investment_filters, only: [:index, :show, :suggest] + has_filters ->(c) { c.instance_variable_get(:@budget).investments_filters }, only: [:index, :show, :suggest] invisible_captcha only: [:create, :update], honeypot: :subtitle, scope: :budget_investment @@ -170,6 +168,14 @@ module Budgets end end + def set_default_investment_filter + if @budget&.finished? + params[:filter] ||= "winners" + elsif @budget&.publishing_prices_or_later? + params[:filter] ||= "selected" + end + end + def load_map @map_location = MapLocation.load_from_heading(@heading) end diff --git a/app/controllers/concerns/investment_filters.rb b/app/controllers/concerns/investment_filters.rb deleted file mode 100644 index 045dbba0d..000000000 --- a/app/controllers/concerns/investment_filters.rb +++ /dev/null @@ -1,27 +0,0 @@ -module InvestmentFilters - extend ActiveSupport::Concern - - class_methods do - def investment_filters - ->(controller) { controller.investment_filters } - end - end - - def set_default_investment_filter - if @budget&.finished? - params[:filter] ||= "winners" - elsif @budget&.publishing_prices_or_later? - params[:filter] ||= "selected" - end - end - - def investment_filters - [ - "not_unfeasible", - "unfeasible", - ("unselected" if @budget.publishing_prices_or_later?), - ("selected" if @budget.publishing_prices_or_later?), - ("winners" if @budget.finished?) - ].compact - end -end diff --git a/app/controllers/concerns/search.rb b/app/controllers/concerns/search.rb index 1dd5074f5..d29f5b044 100644 --- a/app/controllers/concerns/search.rb +++ b/app/controllers/concerns/search.rb @@ -12,9 +12,6 @@ module Search end def parse_advanced_search_terms - if params[:advanced_search].is_a? String - params[:advanced_search] = JSON.parse(params[:advanced_search].gsub("=>", ":")) - end @advanced_search_terms = params[:advanced_search] if params[:advanced_search].present? parse_search_date end diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb index c472a0f35..0352570ed 100644 --- a/app/helpers/budgets_helper.rb +++ b/app/helpers/budgets_helper.rb @@ -16,9 +16,7 @@ module BudgetsHelper end def css_for_ballot_heading(heading) - return "" if current_ballot.blank? || @current_filter == "unfeasible" - - current_ballot.has_lines_in_heading?(heading) ? "is-active" : "" + current_ballot&.has_lines_in_heading?(heading) ? "is-active" : "" end def current_ballot diff --git a/app/models/budget.rb b/app/models/budget.rb index 9ea47bed7..43105de14 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -196,6 +196,14 @@ class Budget < ApplicationRecord end end + def investments_filters + [ + (%w[not_unfeasible feasible unfeasible] if valuating_or_later?), + (%w[selected unselected] if publishing_prices_or_later?), + ("winners" if finished?) + ].compact.flatten + end + def email_selected investments.selected.order(:id).each do |investment| Mailer.budget_investment_selected(investment).deliver_later diff --git a/app/views/budgets/groups/show.html.erb b/app/views/budgets/groups/show.html.erb index 75b082dd4..6997f6485 100644 --- a/app/views/budgets/groups/show.html.erb +++ b/app/views/budgets/groups/show.html.erb @@ -1,27 +1,9 @@ -<% content_for :canonical do %> - <%= render "shared/canonical", href: budget_group_url(filter: @current_filter) %> -<% end %> -
<%= back_link_to budget_path(@budget) %>

<%= t("budgets.groups.show.title") %>

- <% if @current_filter == "unfeasible" %> -
-
-

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

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

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

-
-
- <% end %> -
@@ -30,9 +12,8 @@ <% slice.each do |heading| %> - <%= link_to heading.name, - budget_investments_path(heading_id: heading.id, - filter: @current_filter) %>
+ <%= link_to heading.name, budget_investments_path(heading_id: heading.id) %> +
<% end %>
@@ -44,28 +25,4 @@ <%= image_tag(image_path_for("map.jpg")) %>
- - <% if @budget.balloting_or_later? %> - <% unless @current_filter == "unfeasible" %> -
-
- - <%= link_to t("budgets.groups.show.unfeasible"), - budget_group_path(@budget, @group, filter: "unfeasible") %> - -
-
- <% end %> - - <% unless @current_filter == "unselected" %> -
-
- - <%= link_to t("budgets.groups.show.unselected"), - budget_group_path(@budget, @group, filter: "unselected") %> - -
-
- <% end %> - <% end %>
diff --git a/app/views/budgets/investments/_map.html.erb b/app/views/budgets/investments/_map.html.erb index f22a5d7ee..3d26ee7bc 100644 --- a/app/views/budgets/investments/_map.html.erb +++ b/app/views/budgets/investments/_map.html.erb @@ -1,5 +1,3 @@ - +
+ <%= render_map(@map_location, "budgets", false, nil, @investments_map_coordinates) %> +
diff --git a/app/views/budgets/investments/_sidebar.html.erb b/app/views/budgets/investments/_sidebar.html.erb index 065a73c94..f76cfc224 100644 --- a/app/views/budgets/investments/_sidebar.html.erb +++ b/app/views/budgets/investments/_sidebar.html.erb @@ -59,9 +59,12 @@ <% end %> +<%= render Budgets::Investments::FiltersComponent.new %> + <% if @heading && !@heading.content_blocks.where(locale: I18n.locale).empty? %> <%= render "budgets/investments/content_blocks" %> <% end %> + <% if @map_location&.available? %> <%= render "budgets/investments/map" %> <% end %> diff --git a/app/views/budgets/investments/index.html.erb b/app/views/budgets/investments/index.html.erb index 07e604f1e..d0f813ff0 100644 --- a/app/views/budgets/investments/index.html.erb +++ b/app/views/budgets/investments/index.html.erb @@ -70,8 +70,6 @@ <%= render("shared/order_links", i18n_namespace: "budgets.investments.index") %> <% end %> - <%= render Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index") %> - <% if investments_default_view? %> <% @investments.each do |investment| %> diff --git a/config/locales/en/budgets.yml b/config/locales/en/budgets.yml index e2c8e65fd..d7f919f5c 100644 --- a/config/locales/en/budgets.yml +++ b/config/locales/en/budgets.yml @@ -43,10 +43,6 @@ en: groups: show: title: Select a heading - unfeasible_title: Unfeasible investments - unfeasible: See unfeasible investments - unselected_title: Investments not selected for balloting phase - unselected: See investments not selected for balloting phase phase: drafting: Draft (Not visible to the public) informing: Information @@ -121,7 +117,8 @@ en: not_logged_in: "To create a new budget investment you must %{sign_in} or %{sign_up}." filter: "Filtering projects by" filters: - not_unfeasible: "Not unfeasible" + feasible: "Feasible" + not_unfeasible: "Feasible or with undecided feasibility" selected: "Selected" unfeasible: "Unfeasible" unselected: "Unselected" diff --git a/config/locales/es/budgets.yml b/config/locales/es/budgets.yml index 3f232f6f2..322beb317 100644 --- a/config/locales/es/budgets.yml +++ b/config/locales/es/budgets.yml @@ -43,10 +43,6 @@ es: groups: show: title: Selecciona una partida - unfeasible_title: Proyectos de gasto inviables - unfeasible: Ver proyectos inviables - unselected_title: Proyectos no seleccionados para la votación final - unselected: Ver los proyectos no seleccionados para la votación final phase: drafting: Borrador (No visible para el público) informing: Información @@ -121,7 +117,8 @@ es: not_logged_in: "Para crear un nuevo proyecto de gasto debes %{sign_in} o %{sign_up}." filter: "Filtrando proyectos" filters: - not_unfeasible: "No inviables" + feasible: "Viables" + not_unfeasible: "Viables o con viabilidad por decidir" selected: "Seleccionados" unfeasible: "Inviables" unselected: "No seleccionados" diff --git a/spec/components/budgets/investments/filters_component_spec.rb b/spec/components/budgets/investments/filters_component_spec.rb new file mode 100644 index 000000000..5fe213934 --- /dev/null +++ b/spec/components/budgets/investments/filters_component_spec.rb @@ -0,0 +1,33 @@ +require "rails_helper" + +describe Budgets::Investments::FiltersComponent do + let(:budget) { create(:budget) } + + around do |example| + with_request_url(Rails.application.routes.url_helpers.budget_investments_path(budget)) do + example.run + end + end + + it "is not displayed before valuation" do + %w[informing accepting reviewing selecting].each do |phase| + budget.update!(phase: phase) + allow(controller).to receive(:valid_filters).and_return(budget.investments_filters) + + render_inline Budgets::Investments::FiltersComponent.new + + expect(page.native.inner_html).to be_empty + end + end + + it "is displayed during and after valuation" do + Budget::Phase::kind_or_later("valuating").each do |phase| + budget.update!(phase: phase) + allow(controller).to receive(:valid_filters).and_return(budget.investments_filters) + + render_inline Budgets::Investments::FiltersComponent.new + + expect(page).to have_content "Filtering projects by" + end + end +end diff --git a/spec/components/shared/filter_selector_component_spec.rb b/spec/components/shared/filter_selector_component_spec.rb deleted file mode 100644 index 5333fc695..000000000 --- a/spec/components/shared/filter_selector_component_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require "rails_helper" - -describe Shared::FilterSelectorComponent do - it "renders a form with a select" do - component = Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index") - allow(component).to receive(:valid_filters).and_return(["unfeasible", "winners"]) - allow(component).to receive(:current_filter).and_return(nil) - - with_request_url("/") { render_inline component } - - expect(page).to have_select "Filtering projects by" - expect(page).to have_selector "form[method='get'].filter-selector select" - end -end diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index 11ca8e932..91ee27eeb 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -285,6 +285,36 @@ describe Budget do end end + describe "#investments_filters" do + it "returns no filters before valuating" do + %w[informing accepting reviewing selecting].each do |phase| + budget.phase = phase + + expect(budget.investments_filters).to be_empty + end + end + + it "returns feasibility filters during valuation" do + budget.phase = "valuating" + + expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible]) + end + + it "returns feasibility and selection filters during the final voting phases" do + %w[publishing_prices balloting reviewing_ballots].each do |phase| + budget.phase = phase + + expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible selected unselected]) + end + end + + it "returns all filters after the budget has finished" do + budget.phase = "finished" + + expect(budget.investments_filters).to eq(%w[not_unfeasible feasible unfeasible selected unselected winners]) + end + end + describe "#has_winning_investments?" do it "returns true if there is a winner investment" do budget.investments << build(:budget_investment, :winner, price: 3, ballot_lines_count: 2) diff --git a/spec/system/budgets/budgets_spec.rb b/spec/system/budgets/budgets_spec.rb index 01ae866a8..bb6474b8d 100644 --- a/spec/system/budgets/budgets_spec.rb +++ b/spec/system/budgets/budgets_spec.rb @@ -328,42 +328,6 @@ describe "Budgets" do let!(:budget) { create(:budget, :selecting) } let!(:group) { create(:budget_group, budget: budget) } - describe "Links to unfeasible and selected" do - scenario "are not seen before balloting" do - 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" - end - - scenario "are not seen publishing prices" do - budget.update!(phase: :publishing_prices) - - 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" - end - - scenario "are seen balloting" do - budget.update!(phase: :balloting) - - 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" - end - - scenario "are seen on finished budgets" do - budget.update!(phase: :finished) - - 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" - end - end - scenario "Take into account headings with the same name from a different budget" do group1 = create(:budget_group, budget: budget, name: "New York") heading1 = create(:budget_heading, group: group1, name: "Brooklyn") diff --git a/spec/system/budgets/groups_spec.rb b/spec/system/budgets/groups_spec.rb index 99488b4f8..5bc07eb38 100644 --- a/spec/system/budgets/groups_spec.rb +++ b/spec/system/budgets/groups_spec.rb @@ -26,25 +26,6 @@ describe "Budget Groups" do expect(first_heading.name).to appear_before(last_heading.name) end - scenario "Links to investment filters" do - create(:budget_heading, group: group, name: "Southwest") - budget.update!(phase: "finished") - - visit budget_group_path(budget, group) - - click_link "See unfeasible investments" - - expect(page).to have_css "h3", exact_text: "Unfeasible investments" - expect(page).to have_link "Southwest" - expect(page).not_to have_link "See unfeasible investments" - - click_link "See investments not selected for balloting phase" - - expect(page).to have_css "h3", exact_text: "Investments not selected for balloting phase" - expect(page).to have_link "Southwest" - expect(page).not_to have_link "See investments not selected for balloting phase unfeasible investments" - end - scenario "Back link" do visit budget_group_path(budget, group) diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb index ddc666256..002d17dc2 100644 --- a/spec/system/budgets/investments_spec.rb +++ b/spec/system/budgets/investments_spec.rb @@ -47,6 +47,8 @@ describe "Budget Investments" do end scenario "Index" do + budget.update!(phase: "valuating") + investments = [create(:budget_investment, heading: heading), create(:budget_investment, heading: heading), create(:budget_investment, :feasible, heading: heading)] @@ -131,6 +133,7 @@ describe "Budget Investments" do scenario "Index filter by status" do budget.update!(phase: "finished") + create(:budget_investment, heading: heading, title: "Unclassified investment") create(:budget_investment, :feasible, heading: heading, title: "Feasible investment") create(:budget_investment, :unfeasible, heading: heading, title: "Unfeasible investment") create(:budget_investment, :unselected, heading: heading, title: "Unselected investment") @@ -139,37 +142,43 @@ describe "Budget Investments" do visit budget_investments_path(budget, heading_id: heading.id) - expect(page).to have_select "Filtering projects by", - options: ["Not unfeasible", "Unfeasible", "Unselected", "Selected", "Winners"] + expect(page).to have_content "FILTERING PROJECTS BY" - select "Unfeasible", from: "Filtering projects by" + click_link "Feasible" expect(page).to have_css ".budget-investment", count: 1 + expect(page).to have_content "Feasible investment" + + click_link "Unfeasible" + expect(page).to have_content "Unfeasible investment" + expect(page).to have_css ".budget-investment", count: 1 - select "Unselected", from: "Filtering projects by" + click_link "Unselected" - expect(page).to have_css ".budget-investment", count: 2 + expect(page).to have_css ".budget-investment", count: 3 expect(page).to have_content "Unselected investment" + expect(page).to have_content "Unclassified investment" expect(page).to have_content "Feasible investment" - select "Selected", from: "Filtering projects by" + click_link "Selected" expect(page).to have_css ".budget-investment", count: 2 expect(page).to have_content "Selected investment" expect(page).to have_content "Winner investment" - select "Winners", from: "Filtering projects by" + click_link "Winners" expect(page).to have_css ".budget-investment", count: 1 expect(page).to have_content "Winner investment" - select "Not unfeasible", from: "Filtering projects by" + click_link "Feasible or with undecided feasibility" - expect(page).to have_css ".budget-investment", count: 4 + expect(page).to have_css ".budget-investment", count: 5 expect(page).to have_content "Selected investment" expect(page).to have_content "Unselected investment" expect(page).to have_content "Feasible investment" + expect(page).to have_content "Unclassified investment" expect(page).to have_content "Winner investment" end @@ -196,6 +205,8 @@ describe "Budget Investments" do end scenario "Advanced search combined with filter by status" do + budget.update!(phase: "valuating") + create(:budget_investment, :feasible, heading: heading, title: "Feasible environment") create(:budget_investment, :feasible, heading: heading, title: "Feasible health") create(:budget_investment, :unfeasible, heading: heading, title: "Unfeasible environment") @@ -203,13 +214,10 @@ describe "Budget Investments" do visit budget_investments_path(budget, heading: heading) - click_on "Advanced search" - - within(".advanced-search-form") do - fill_in "With the text", with: "environment" - select "Last 24 hours", from: "By date" - click_button "Filter" - end + click_button "Advanced search" + fill_in "With the text", with: "environment" + select "Last 24 hours", from: "By date" + click_button "Filter" expect(page).to have_content "There is 1 investment containing the term 'environment'" expect(page).to have_css ".budget-investment", count: 1 @@ -218,7 +226,7 @@ describe "Budget Investments" do expect(page).not_to have_content "Unfeasible environment" expect(page).not_to have_content "Unfeasible health" - select "Unfeasible", from: "Filtering projects by" + click_link "Unfeasible" expect(page).not_to have_content "Feasible environment" expect(page).to have_content "There is 1 investment containing the term 'environment'" @@ -231,6 +239,8 @@ describe "Budget Investments" do context("Filters") do scenario "by unfeasibility" do + budget.update!(phase: "valuating") + investment1 = create(:budget_investment, :unfeasible, :finished, heading: heading) investment2 = create(:budget_investment, :feasible, heading: heading) investment3 = create(:budget_investment, heading: heading) @@ -514,7 +524,7 @@ describe "Budget Investments" do end scenario "Order always is random for unfeasible and unselected investments" do - Budget::Phase::PHASE_KINDS.each do |phase| + Budget::Phase::kind_or_later("valuating").each do |phase| budget.update!(phase: phase) visit budget_investments_path(budget, heading_id: heading.id, filter: "unfeasible") @@ -1448,7 +1458,7 @@ describe "Budget Investments" do end end - scenario "Highlight voted heading except with unfeasible filter" do + scenario "Highlight voted heading" do budget.update!(phase: "balloting") user = create(:user, :level_two) @@ -1466,14 +1476,6 @@ describe "Budget Investments" do expect(page).to have_css("#budget_heading_#{heading_1.id}.is-active") expect(page).to have_css("#budget_heading_#{heading_2.id}") - - click_link "See unfeasible investments" - - within("#headings") do - expect(page).to have_css("#budget_heading_#{heading_1.id}") - expect(page).to have_css("#budget_heading_#{heading_2.id}") - expect(page).not_to have_css(".is-active") - end end scenario "Ballot is visible" do