From afb1c3315403e38168f48b1e7e9d03be3464fa1f Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Mon, 20 Jul 2020 16:50:12 +0200 Subject: [PATCH] models: require belong_to associations on geo_area --- app/models/geo_area.rb | 2 +- spec/factories/geo_area.rb | 2 ++ spec/models/geo_area_spec.rb | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/models/geo_area.rb b/app/models/geo_area.rb index 46118985d..3682dc8d8 100644 --- a/app/models/geo_area.rb +++ b/app/models/geo_area.rb @@ -12,7 +12,7 @@ # geo_reference_id :string # class GeoArea < ApplicationRecord - belongs_to :champ + belongs_to :champ, optional: false store :properties, accessors: [ :description, diff --git a/spec/factories/geo_area.rb b/spec/factories/geo_area.rb index 3f65aef6d..629413b26 100644 --- a/spec/factories/geo_area.rb +++ b/spec/factories/geo_area.rb @@ -1,5 +1,7 @@ FactoryBot.define do factory :geo_area do + association :champ + trait :cadastre do source { GeoArea.sources.fetch(:cadastre) } numero { '42' } diff --git a/spec/models/geo_area_spec.rb b/spec/models/geo_area_spec.rb index 15c394df8..95e6b492e 100644 --- a/spec/models/geo_area_spec.rb +++ b/spec/models/geo_area_spec.rb @@ -1,24 +1,24 @@ RSpec.describe GeoArea, type: :model do describe '#area' do - let(:geo_area) { create(:geo_area, :polygon) } + let(:geo_area) { build(:geo_area, :polygon) } it { expect(geo_area.area).to eq(219.0) } end describe '#length' do - let(:geo_area) { create(:geo_area, :line_string) } + let(:geo_area) { build(:geo_area, :line_string) } it { expect(geo_area.length).to eq(30.8) } end describe '#location' do - let(:geo_area) { create(:geo_area, :point) } + let(:geo_area) { build(:geo_area, :point) } it { expect(geo_area.location).to eq("2°25'42\"N 46°32'19\"E") } end describe '#rgeo_geometry' do - let(:geo_area) { create(:geo_area, geometry: geometry) } + let(:geo_area) { build(:geo_area, geometry: geometry) } context 'invalid' do let(:geometry) do