demarches-normaliennes/spec/factories/procedure.rb

177 lines
5.8 KiB
Ruby
Raw Normal View History

2018-01-23 17:15:42 +01:00
FactoryBot.define do
sequence(:published_path) { |n| "fake_path#{n}" }
factory :procedure do
lien_demarche 'http://localhost'
sequence(:libelle) { |n| "Procedure #{n}" }
description "Demande de subvention à l'intention des associations"
2018-01-18 14:03:18 +01:00
organisation "Orga DINSIC"
direction "direction DINSIC"
2018-05-02 15:41:43 +02:00
cadre_juridique "un cadre juridique important"
published_at nil
2017-02-15 17:09:25 +01:00
cerfa_flag false
administrateur { create(:administrateur) }
duree_conservation_dossiers_dans_ds 3
duree_conservation_dossiers_hors_ds 6
after(:build) do |procedure, _evaluator|
if procedure.module_api_carto.nil?
module_api_carto = create(:module_api_carto)
procedure.module_api_carto = module_api_carto
end
end
trait :with_api_carto do
after(:build) do |procedure, _evaluator|
procedure.module_api_carto.use_api_carto = true
end
end
trait :for_individual do
after(:build) do |procedure, _evaluator|
procedure.for_individual = true
end
end
2015-11-05 11:21:44 +01:00
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|
2018-02-14 15:12:57 +01:00
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|
2018-02-14 15:12:57 +01:00
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|
2018-02-14 15:12:57 +01:00
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|
2016-07-12 15:20:10 +02:00
procedure.publish!(generate(:published_path))
end
end
2017-07-04 13:52:08 +02:00
trait :archived do
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!
2017-07-04 13:52:08 +02:00
end
end
2018-02-21 18:32:07 +01:00
2018-05-30 14:21:17 +02:00
trait :whitelisted do
after(:build) do |procedure, _evaluator|
procedure.update(whitelisted_at: DateTime.now)
end
end
2018-04-26 14:36:27 +02:00
trait :with_notice do
after(:create) do |procedure, _evaluator|
procedure.notice.attach(
io: StringIO.new('Hello World'),
2018-05-31 11:00:22 +02:00
filename: 'hello.txt'
)
end
end
trait :with_deliberation do
after(:create) do |procedure, _evaluator|
procedure.deliberation.attach(
io: StringIO.new('Hello World'),
2018-04-26 14:36:27 +02:00
filename: 'hello.txt'
)
end
end
2018-02-21 18:32:07 +01:00
trait :with_all_champs_mandatory do
after(:build) do |procedure, _evaluator|
tdcs = []
2018-02-14 15:12:57 +01:00
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')
2018-02-21 18:32:07 +01:00
procedure.types_de_champ = tdcs
end
end
end
end