demarches-normaliennes/spec/factories/dossier.rb

158 lines
4.8 KiB
Ruby
Raw Normal View History

2018-01-23 17:15:42 +01:00
FactoryBot.define do
factory :dossier do
2018-09-04 16:46:48 +02:00
autorisation_donnees { true }
state { Dossier.states.fetch(:brouillon) }
2016-02-04 14:08:35 +01:00
association :user, factory: [:user]
before(:create) do |dossier, _evaluator|
2018-01-11 19:04:39 +01:00
if !dossier.procedure
procedure = create(:procedure, :published, :with_type_de_champ, :with_type_de_champ_private)
2016-02-02 18:37:38 +01:00
dossier.procedure = procedure
end
end
2016-02-04 14:08:35 +01:00
trait :with_entreprise do
2015-08-20 16:25:54 +02:00
after(:build) do |dossier, _evaluator|
etablissement = create(:etablissement)
dossier.etablissement = etablissement
end
end
trait :with_service do
after(:create) do |dossier, _evaluator|
dossier.procedure.service = create(:service)
end
end
2017-01-03 12:53:27 +01:00
trait :for_individual do
after(:build) do |dossier, _evaluator|
dossier.individual = create(:individual)
2017-01-03 12:53:27 +01:00
dossier.save
end
end
trait :archived do
2018-09-04 16:46:48 +02:00
archived { true }
end
trait :not_archived do
2018-09-04 16:46:48 +02:00
archived { false }
end
trait :hidden do
hidden_at { Time.zone.now }
end
trait :with_dossier_link do
after(:create) do |dossier, _evaluator|
linked_dossier = create(:dossier)
type_de_champ = dossier.procedure.types_de_champ.find { |t| t.type_champ == TypeDeChamp.type_champs.fetch(:dossier_link) }
champ = dossier.champs.find { |c| c.type_de_champ == type_de_champ }
champ.value = linked_dossier.id
champ.save!
end
end
trait :with_commentaires do
after(:create) do |dossier, _evaluator|
dossier.commentaires += create_list(:commentaire, 2)
end
end
trait :followed do
after(:create) do |dossier, _evaluator|
g = create(:instructeur)
g.followed_dossiers << dossier
end
end
trait :en_construction do
2017-10-05 10:50:44 +02:00
after(:create) do |dossier, _evaluator|
dossier.state = Dossier.states.fetch(:en_construction)
dossier.en_construction_at ||= dossier.created_at + 1.minute
2017-10-05 10:50:44 +02:00
dossier.save!
end
end
trait :en_instruction do
after(:create) do |dossier, _evaluator|
dossier.state = Dossier.states.fetch(:en_instruction)
dossier.en_construction_at ||= dossier.created_at + 1.minute
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
dossier.save!
end
end
2018-08-10 16:17:19 +02:00
trait :accepte do
after(:create) do |dossier, _evaluator|
dossier.state = Dossier.states.fetch(:accepte)
dossier.en_construction_at ||= dossier.created_at + 1.minute
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
2018-08-10 16:17:19 +02:00
dossier.save!
end
end
trait :refuse do
after(:create) do |dossier, _evaluator|
dossier.state = Dossier.states.fetch(:refuse)
dossier.en_construction_at ||= dossier.created_at + 1.minute
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
2018-08-10 16:17:19 +02:00
dossier.save!
end
end
trait :sans_suite do
after(:create) do |dossier, _evaluator|
dossier.state = Dossier.states.fetch(:sans_suite)
dossier.en_construction_at ||= dossier.created_at + 1.minute
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
2018-08-10 16:17:19 +02:00
dossier.save!
end
end
trait :with_motivation do
after(:create) do |dossier, _evaluator|
dossier.motivation = case dossier.state
when Dossier.states.fetch(:refuse)
2018-08-10 16:17:19 +02:00
'Lentreprise concernée nest pas agréée.'
when Dossier.states.fetch(:sans_suite)
2018-08-10 16:17:19 +02:00
'Le département nest pas éligible. Veuillez remplir un nouveau dossier auprès de la DDT du 93.'
else
'Vous avez validé les conditions.'
end
end
end
trait :with_attestation do
after(:create) do |dossier, _evaluator|
if dossier.procedure.attestation_template.blank?
dossier.procedure.attestation_template = create(:attestation_template)
end
dossier.attestation = dossier.build_attestation
end
end
trait :with_all_champs do
after(:create) do |dossier, _evaluator|
dossier.champs = dossier.procedure.types_de_champ.map do |type_de_champ|
build(:"champ_#{type_de_champ.type_champ}", type_de_champ: type_de_champ)
end
dossier.save!
end
end
trait :with_all_annotations do
after(:create) do |dossier, _evaluator|
dossier.champs = dossier.procedure.types_de_champ.map do |type_de_champ|
build(:"champ_#{type_de_champ.type_champ}", type_de_champ: type_de_champ)
end
dossier.save!
end
end
end
2015-08-20 17:30:17 +02:00
end