Merge pull request #3267 from consul/budgets-index-map

[Backport] Always show markers on budgets index map
This commit is contained in:
Alberto
2019-02-05 15:00:13 +01:00
committed by GitHub
3 changed files with 44 additions and 75 deletions

View File

@@ -70,7 +70,7 @@ module BudgetsHelper
def current_budget_map_locations
return unless current_budget.present?
if current_budget.valuating_or_later?
if current_budget.publishing_prices_or_later? && current_budget.investments.selected.any?
investments = current_budget.investments.selected
else
investments = current_budget.investments

View File

@@ -105,8 +105,8 @@ class Budget < ActiveRecord::Base
Budget::Phase::PUBLISHED_PRICES_PHASES.include?(phase)
end
def valuating_or_later?
valuating? || publishing_prices? || balloting_or_later?
def publishing_prices_or_later?
publishing_prices? || balloting_or_later?
end
def balloting_process?

View File

@@ -230,7 +230,7 @@ feature 'Budgets' do
let(:heading) { create(:budget_heading, group: group) }
background do
Setting['feature.map'] = true
Setting["feature.map"] = true
end
scenario "Display investment's map location markers", :js do
@@ -249,6 +249,46 @@ feature 'Budgets' do
end
end
scenario "Display all investment's map location if there are no selected", :js do
budget.update(phase: :publishing_prices)
investment1 = create(:budget_investment, heading: heading)
investment2 = create(:budget_investment, heading: heading)
investment3 = create(:budget_investment, heading: heading)
investment4 = create(:budget_investment, heading: heading)
investment1.create_map_location(longitude: 40.1234, latitude: 3.1234, zoom: 10)
investment2.create_map_location(longitude: 40.1235, latitude: 3.1235, zoom: 10)
investment3.create_map_location(longitude: 40.1236, latitude: 3.1236, zoom: 10)
investment4.create_map_location(longitude: 40.1240, latitude: 3.1240, zoom: 10)
visit budgets_path
within ".map_location" do
expect(page).to have_css(".map-icon", count: 4, visible: false)
end
end
scenario "Display only selected investment's map location from publishing prices phase", :js do
budget.update(phase: :publishing_prices)
investment1 = create(:budget_investment, :selected, heading: heading)
investment2 = create(:budget_investment, :selected, heading: heading)
investment3 = create(:budget_investment, heading: heading)
investment4 = create(:budget_investment, heading: heading)
investment1.create_map_location(longitude: 40.1234, latitude: 3.1234, zoom: 10)
investment2.create_map_location(longitude: 40.1235, latitude: 3.1235, zoom: 10)
investment3.create_map_location(longitude: 40.1236, latitude: 3.1236, zoom: 10)
investment4.create_map_location(longitude: 40.1240, latitude: 3.1240, zoom: 10)
visit budgets_path
within ".map_location" do
expect(page).to have_css(".map-icon", count: 2, visible: false)
end
end
scenario "Skip invalid map markers", :js do
map_locations = []
@@ -279,77 +319,6 @@ feature 'Budgets' do
end
end
xcontext "Index map" do
let(:group) { create(:budget_group, budget: budget) }
let(:heading) { create(:budget_heading, group: group) }
before do
Setting['feature.map'] = true
end
scenario "Display investment's map location markers" , :js do
investment1 = create(:budget_investment, heading: heading)
investment2 = create(:budget_investment, heading: heading)
investment3 = create(:budget_investment, heading: heading)
investment1.create_map_location(longitude: 40.1234, latitude: 3.1234, zoom: 10)
investment2.create_map_location(longitude: 40.1235, latitude: 3.1235, zoom: 10)
investment3.create_map_location(longitude: 40.1236, latitude: 3.1236, zoom: 10)
visit budgets_path
within ".map_location" do
expect(page).to have_css(".map-icon", count: 3)
end
end
scenario "Display selected investment's map location markers" , :js do
budget.update(phase: :valuating)
investment1 = create(:budget_investment, :selected, heading: heading)
investment2 = create(:budget_investment, :selected, heading: heading)
investment3 = create(:budget_investment, heading: heading)
investment1.create_map_location(longitude: 40.1234, latitude: 3.1234, zoom: 10)
investment2.create_map_location(longitude: 40.1235, latitude: 3.1235, zoom: 10)
investment3.create_map_location(longitude: 40.1236, latitude: 3.1236, zoom: 10)
visit budgets_path
within ".map_location" do
expect(page).to have_css(".map-icon", count: 2)
end
end
scenario "Skip invalid map markers" , :js do
map_locations = []
map_locations << { longitude: 40.123456789, latitude: 3.12345678 }
map_locations << { longitude: 40.123456789, latitude: "*******" }
map_locations << { longitude: "**********", latitude: 3.12345678 }
budget_map_locations = map_locations.map do |map_location|
{
lat: map_location[:latitude],
long: map_location[:longitude],
investment_title: "#{rand(999)}",
investment_id: "#{rand(999)}",
budget_id: budget.id
}
end
allow_any_instance_of(BudgetsHelper).
to receive(:current_budget_map_locations).and_return(budget_map_locations)
visit budgets_path
within ".map_location" do
expect(page).to have_css(".map-icon", count: 1)
end
end
end
context 'Show' do
scenario "List all groups" do