From fe8804f208e6bee5af87e30c4a4c79b9bf2c95ba Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Mon, 20 Jul 2020 14:53:25 +0000 Subject: [PATCH] models: require belong_to associations on individual --- app/models/individual.rb | 2 +- spec/factories/dossier.rb | 2 +- spec/factories/individual.rb | 1 + spec/helpers/dossier_helper_spec.rb | 4 ++-- spec/models/individual_spec.rb | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/models/individual.rb b/app/models/individual.rb index 544694aca..958635198 100644 --- a/app/models/individual.rb +++ b/app/models/individual.rb @@ -12,7 +12,7 @@ # dossier_id :integer # class Individual < ApplicationRecord - belongs_to :dossier + belongs_to :dossier, optional: false validates :dossier_id, uniqueness: true validates :gender, presence: true, allow_nil: false, on: :update diff --git a/spec/factories/dossier.rb b/spec/factories/dossier.rb index 181c64f10..370e85855 100644 --- a/spec/factories/dossier.rb +++ b/spec/factories/dossier.rb @@ -49,7 +49,7 @@ FactoryBot.define do if !dossier.procedure.for_individual? raise 'Inconsistent factory: attempting to create a dossier :with_individual on a procedure that is not `for_individual?`' end - dossier.individual = create(:individual) + dossier.individual = build(:individual, dossier: dossier) end end diff --git a/spec/factories/individual.rb b/spec/factories/individual.rb index dc7835e2e..e93b3f6c0 100644 --- a/spec/factories/individual.rb +++ b/spec/factories/individual.rb @@ -4,5 +4,6 @@ FactoryBot.define do nom { 'Julien' } prenom { 'Xavier' } birthdate { Date.new(1991, 11, 01) } + association :dossier end end diff --git a/spec/helpers/dossier_helper_spec.rb b/spec/helpers/dossier_helper_spec.rb index 7b00ca8b0..d1e47d61d 100644 --- a/spec/helpers/dossier_helper_spec.rb +++ b/spec/helpers/dossier_helper_spec.rb @@ -41,8 +41,8 @@ RSpec.describe DossierHelper, type: :helper do describe ".demandeur_dossier" do subject { demandeur_dossier(dossier) } - let(:individual) { create(:individual) } - let(:etablissement) { create(:etablissement) } + let(:individual) { build(:individual, dossier: nil) } + let(:etablissement) { build(:etablissement) } let(:dossier) { create(:dossier, procedure: procedure, individual: individual, etablissement: etablissement) } context "when the dossier is for an individual" do diff --git a/spec/models/individual_spec.rb b/spec/models/individual_spec.rb index b678adb49..d41c85f1d 100644 --- a/spec/models/individual_spec.rb +++ b/spec/models/individual_spec.rb @@ -2,7 +2,7 @@ describe Individual do it { is_expected.to have_db_column(:gender) } it { is_expected.to have_db_column(:nom) } it { is_expected.to have_db_column(:prenom) } - it { is_expected.to belong_to(:dossier) } + it { is_expected.to belong_to(:dossier).required } describe "#save" do let(:individual) { build(:individual) }