specs: create the procedure administrateur declaratively

It seems better to create associations in an declarative fashion, rather
than using imperative code. This also makes the attribute compatible
with build_stubbed.
This commit is contained in:
Pierre de La Morinerie 2021-11-19 14:41:47 +00:00
parent 970c3e4b2b
commit 032e3e2cb1

View file

@ -13,6 +13,8 @@ FactoryBot.define do
lien_site_web { "https://mon-site.gouv" }
path { SecureRandom.uuid }
administrateurs { administrateur.present? ? [administrateur] : [association(:administrateur)] }
transient do
administrateur { }
instructeurs { [] }
@ -22,12 +24,6 @@ FactoryBot.define do
end
after(:build) do |procedure, evaluator|
if evaluator.administrateur
procedure.administrateurs = [evaluator.administrateur]
elsif procedure.administrateurs.empty?
procedure.administrateurs = [build(:administrateur)]
end
initial_revision = build(:procedure_revision, procedure: procedure)
add_types_de_champs(evaluator.types_de_champ, to: initial_revision, scope: :public)
add_types_de_champs(evaluator.types_de_champ_private, to: initial_revision, scope: :private)