From 3f7a2bea9b2737460bf4077e4936a5354db508e7 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Tue, 11 May 2021 17:49:29 +0200 Subject: [PATCH] Dossier without user should be valid --- app/models/dossier.rb | 4 ++-- spec/models/user_spec.rb | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/dossier.rb b/app/models/dossier.rb index a0eb88cbf..acb3b8db5 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -87,7 +87,7 @@ class Dossier < ApplicationRecord belongs_to :groupe_instructeur, optional: true belongs_to :revision, class_name: 'ProcedureRevision', optional: false - belongs_to :user, optional: false + belongs_to :user, optional: true has_one :procedure, through: :revision has_many :types_de_champ, through: :revision @@ -349,7 +349,7 @@ class Dossier < ApplicationRecord after_save :send_web_hook after_create_commit :send_draft_notification_email - validates :user, presence: true + validates :user, presence: true, if: -> { deleted_user_email_never_send.nil? } validates :individual, presence: true, if: -> { revision.procedure.for_individual? } validates :groupe_instructeur, presence: true, if: -> { !brouillon? } diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 6ad1040b9..002f0b2d2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -332,7 +332,7 @@ describe User, type: :model do end end - context 'with dossiers with processing strted' do + context 'with dossiers with processing started' do let!(:dossier_en_instruction) { create(:dossier, :en_instruction, user: user) } let!(:dossier_termine) { create(:dossier, :accepte, user: user) } @@ -347,6 +347,7 @@ describe User, type: :model do expect(dossier_termine.reload).to be_present expect(dossier_termine.user).to be_nil expect(dossier_termine.user_email_for(:display)).to eq(user.email) + expect(dossier_termine.valid?).to be_truthy expect { dossier_termine.user_email_for(:notification) }.to raise_error(RuntimeError) expect(User.find_by(id: user.id)).to be_nil