e206f3d4d4
Fix #3088
204 lines
6.6 KiB
Ruby
204 lines
6.6 KiB
Ruby
FactoryBot.define do
|
|
sequence(:published_path) { |n| "fake_path#{n}" }
|
|
factory :procedure do
|
|
sequence(:libelle) { |n| "Procedure #{n}" }
|
|
description { "Demande de subvention à l'intention des associations" }
|
|
organisation { "Orga DINSIC" }
|
|
direction { "direction DINSIC" }
|
|
cadre_juridique { "un cadre juridique important" }
|
|
published_at { nil }
|
|
administrateur { create(:administrateur) }
|
|
duree_conservation_dossiers_dans_ds { 3 }
|
|
duree_conservation_dossiers_hors_ds { 6 }
|
|
|
|
factory :procedure_with_dossiers do
|
|
transient do
|
|
dossiers_count { 1 }
|
|
end
|
|
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.dossiers << create_list(:dossier, _evaluator.dossiers_count, procedure: procedure)
|
|
end
|
|
end
|
|
|
|
factory :simple_procedure do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.for_individual = true
|
|
procedure.types_de_champ << create(:type_de_champ, libelle: 'Texte obligatoire', mandatory: true)
|
|
procedure.publish!(generate(:published_path))
|
|
end
|
|
end
|
|
|
|
trait :with_path do
|
|
path { generate(:published_path) }
|
|
end
|
|
|
|
trait :with_service do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.service = create(:service)
|
|
end
|
|
end
|
|
|
|
trait :with_gestionnaire do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.gestionnaires << create(:gestionnaire)
|
|
end
|
|
end
|
|
|
|
trait :for_individual do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.for_individual = true
|
|
end
|
|
end
|
|
|
|
trait :with_type_de_champ do
|
|
transient do
|
|
types_de_champ_count { 1 }
|
|
end
|
|
|
|
after(:build) do |procedure, evaluator|
|
|
evaluator.types_de_champ_count.times do
|
|
type_de_champ = create(:type_de_champ)
|
|
|
|
procedure.types_de_champ << type_de_champ
|
|
end
|
|
end
|
|
end
|
|
|
|
trait :with_type_de_champ_private do
|
|
transient do
|
|
types_de_champ_private_count { 1 }
|
|
end
|
|
|
|
after(:build) do |procedure, evaluator|
|
|
evaluator.types_de_champ_private_count.times do
|
|
type_de_champ = create(:type_de_champ, :private)
|
|
|
|
procedure.types_de_champ_private << type_de_champ
|
|
end
|
|
end
|
|
end
|
|
|
|
trait :with_type_de_champ_mandatory do
|
|
after(:build) do |procedure, _evaluator|
|
|
type_de_champ = create(:type_de_champ, mandatory: true)
|
|
|
|
procedure.types_de_champ << type_de_champ
|
|
end
|
|
end
|
|
|
|
trait :with_datetime do
|
|
after(:build) do |procedure, _evaluator|
|
|
type_de_champ = create(:type_de_champ_datetime, mandatory: true)
|
|
|
|
procedure.types_de_champ << type_de_champ
|
|
end
|
|
end
|
|
|
|
trait :with_dossier_link do
|
|
after(:build) do |procedure, _evaluator|
|
|
type_de_champ = create(:type_de_champ_dossier_link)
|
|
|
|
procedure.types_de_champ << type_de_champ
|
|
end
|
|
end
|
|
|
|
trait :with_yes_no do
|
|
after(:build) do |procedure, _evaluator|
|
|
type_de_champ = create(:type_de_champ_yes_no)
|
|
|
|
procedure.types_de_champ << type_de_champ
|
|
end
|
|
end
|
|
|
|
trait :with_two_type_de_piece_justificative do
|
|
after(:build) do |procedure, _evaluator|
|
|
rib = create(:type_de_piece_justificative, :rib, order_place: 1)
|
|
msa = create(:type_de_piece_justificative, :msa, order_place: 2)
|
|
|
|
procedure.types_de_piece_justificative << rib
|
|
procedure.types_de_piece_justificative << msa
|
|
end
|
|
end
|
|
|
|
trait :published do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.publish!(generate(:published_path))
|
|
end
|
|
end
|
|
|
|
trait :archived do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.publish!(generate(:published_path))
|
|
procedure.archive!
|
|
end
|
|
end
|
|
|
|
trait :archived_automatically do
|
|
# For now the behavior is the same than :archived
|
|
# (it may be different in the future though)
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.publish!(generate(:published_path))
|
|
procedure.archive!
|
|
end
|
|
end
|
|
|
|
trait :hidden do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.publish!(generate(:published_path))
|
|
procedure.hide!
|
|
end
|
|
end
|
|
|
|
trait :whitelisted do
|
|
after(:build) do |procedure, _evaluator|
|
|
procedure.update(whitelisted_at: Time.zone.now)
|
|
end
|
|
end
|
|
|
|
trait :with_notice do
|
|
after(:create) do |procedure, _evaluator|
|
|
procedure.notice.attach(
|
|
io: StringIO.new('Hello World'),
|
|
filename: 'hello.txt'
|
|
)
|
|
end
|
|
end
|
|
|
|
trait :with_deliberation do
|
|
after(:create) do |procedure, _evaluator|
|
|
procedure.deliberation.attach(
|
|
io: StringIO.new('Hello World'),
|
|
filename: 'hello.txt'
|
|
)
|
|
end
|
|
end
|
|
|
|
trait :with_all_champs_mandatory do
|
|
after(:build) do |procedure, _evaluator|
|
|
tdcs = []
|
|
tdcs << create(:type_de_champ, mandatory: true, libelle: 'text')
|
|
tdcs << create(:type_de_champ_textarea, mandatory: true, libelle: 'textarea')
|
|
tdcs << create(:type_de_champ_date, mandatory: true, libelle: 'date')
|
|
tdcs << create(:type_de_champ_datetime, mandatory: true, libelle: 'datetime')
|
|
tdcs << create(:type_de_champ_number, mandatory: true, libelle: 'number')
|
|
tdcs << create(:type_de_champ_checkbox, mandatory: true, libelle: 'checkbox')
|
|
tdcs << create(:type_de_champ_civilite, mandatory: true, libelle: 'civilite')
|
|
tdcs << create(:type_de_champ_email, mandatory: true, libelle: 'email')
|
|
tdcs << create(:type_de_champ_phone, mandatory: true, libelle: 'phone')
|
|
tdcs << create(:type_de_champ_yes_no, mandatory: true, libelle: 'yes_no')
|
|
tdcs << create(:type_de_champ_drop_down_list, mandatory: true, libelle: 'simple_drop_down_list')
|
|
tdcs << create(:type_de_champ_multiple_drop_down_list, mandatory: true, libelle: 'multiple_drop_down_list')
|
|
tdcs << create(:type_de_champ_pays, mandatory: true, libelle: 'pays')
|
|
tdcs << create(:type_de_champ_regions, mandatory: true, libelle: 'regions')
|
|
tdcs << create(:type_de_champ_departements, mandatory: true, libelle: 'departements')
|
|
tdcs << create(:type_de_champ_engagement, mandatory: true, libelle: 'engagement')
|
|
tdcs << create(:type_de_champ_header_section, mandatory: true, libelle: 'header_section')
|
|
tdcs << create(:type_de_champ_explication, mandatory: true, libelle: 'explication')
|
|
tdcs << create(:type_de_champ_dossier_link, mandatory: true, libelle: 'dossier_link')
|
|
tdcs << create(:type_de_champ_piece_justificative, mandatory: true, libelle: 'piece_justificative')
|
|
procedure.types_de_champ = tdcs
|
|
end
|
|
end
|
|
end
|
|
end
|