[#10919] When data in geo_area is invalid do not crash when .label is called

This commit is contained in:
Mathieu Magnin 2024-10-15 14:37:32 +02:00
parent 1cd4c7a885
commit 49c9f274e4
No known key found for this signature in database
GPG key ID: 8DCAFC82D7BA654E
2 changed files with 11 additions and 1 deletions

View file

@ -65,7 +65,7 @@ class GeoArea < ApplicationRecord
def label
case source
when GeoArea.sources.fetch(:cadastre)
I18n.t("cadastre", scope: 'geo_area.label', numero: numero, prefixe: prefixe, section: section, surface: surface.round, commune: commune)
I18n.t("cadastre", scope: 'geo_area.label', numero: numero, prefixe: prefixe, section: section, surface: surface&.round, commune: commune)
when GeoArea.sources.fetch(:selection_utilisateur)
if polygon?
if area > 0

View file

@ -143,6 +143,16 @@ RSpec.describe GeoArea, type: :model do
it "should return the label" do
expect(geo_area.label).to eq("Parcelle n° 42 - Feuille 000 A11 - 123  commune 75127")
end
context "when area is nil" do
let(:geo_area) { build(:geo_area, :selection_utilisateur, :cadastre, properties: { "description" => "48°51'45.81\"N 2°17'15,33\"E" }, geometry: { "type" => "Point", "coordinates" => [7.754444, 48.610556] }, champ: nil) }
before { allow(geo_area).to receive(:area).and_return(nil) }
it "should not crash" do
expect(geo_area.label).to eq("Parcelle n° - Feuille - m² commune ")
end
end
end
end
end