2024-04-29 00:17:15 +02:00
# frozen_string_literal: true
2024-06-05 17:25:10 +02:00
describe 'Administrateurs can edit procedures' , js : true do
include Logic
let ( :procedure ) { create ( :procedure , administrateurs : [ create ( :administrateur ) ] ) }
before do
login_as procedure . administrateurs . first . user , scope : :user
end
scenario 'setup eligibilite' do
# explain no champ compatible
visit admin_procedure_path ( procedure )
2024-06-05 19:16:41 +02:00
expect ( page ) . to have_content ( " Désactivé " )
2024-06-05 17:25:10 +02:00
# explain which champs are compatible
visit edit_admin_procedure_ineligibilite_rules_path ( procedure )
expect ( page ) . to have_content ( " Inéligibilité des dossiers " )
2024-06-05 19:16:41 +02:00
expect ( page ) . to have_content ( " Pour configurer l’ inéligibilité des dossiers, votre formulaire doit comporter au moins un champ supportant les conditions d’ inéligibilité. Il vous faut donc ajouter au moins un des champs suivant à votre formulaire : " )
click_on " Ajouter un champ supportant les conditions d’ inéligibilité "
2024-06-05 17:25:10 +02:00
# setup a compatible champ
expect ( page ) . to have_content ( 'Champs du formulaire' )
click_on 'Ajouter un champ'
select " Oui/Non "
fill_in " Libellé du champ " , with : " Un champ oui non "
click_on " Revenir à l'écran de gestion "
procedure . reload
first_tdc = procedure . draft_revision . types_de_champ . first
# back to procedure dashboard, explain you can set it up now
expect ( page ) . to have_content ( 'À configurer' )
visit edit_admin_procedure_ineligibilite_rules_path ( procedure )
# setup rules and stuffs
expect ( page ) . to have_content ( " Inéligibilité des dossiers " )
fill_in " Message d’ inéligibilité " , with : " vous n'etes pas eligible "
2024-06-05 19:16:41 +02:00
find ( 'label' , text : 'Bloquer le dépôt des dossiers répondant à des conditions d’ inéligibilité' ) . click
2024-06-05 17:25:10 +02:00
click_on " Ajouter une règle d’ inéligibilité "
all ( 'select' ) . first . select 'Un champ oui non'
click_on 'Enregistrer'
# rules are setup
wait_until { procedure . reload . draft_revision . ineligibilite_enabled == true }
expect ( procedure . draft_revision . ineligibilite_message ) . to eq ( " vous n'etes pas eligible " )
expect ( procedure . draft_revision . ineligibilite_rules ) . to eq ( ds_eq ( champ_value ( first_tdc . stable_id ) , constant ( true ) ) )
end
end