feat(ProcedureRevision.ineligibilite_rules): add ineligibilite_rules management to procedure revision based on conditional logic
This commit is contained in:
parent
12d23f1498
commit
aca3e38859
22 changed files with 591 additions and 0 deletions
45
spec/system/administrateurs/procedure_ineligibilite_spec.rb
Normal file
45
spec/system/administrateurs/procedure_ineligibilite_spec.rb
Normal file
|
@ -0,0 +1,45 @@
|
|||
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)
|
||||
expect(page).to have_content("Champs à configurer")
|
||||
|
||||
# explain which champs are compatible
|
||||
visit edit_admin_procedure_ineligibilite_rules_path(procedure)
|
||||
expect(page).to have_content("Inéligibilité des dossiers")
|
||||
expect(page).to have_content("Pour configurer l’inéligibilité des dossiers, votre formulaire doit comporter au moins un champ supportant les critères d’inéligibilité. Il vous faut donc ajouter au moins un des champs suivant à votre formulaire : ")
|
||||
click_on "Ajouter un champ supportant les critères d’inéligibilité"
|
||||
|
||||
# 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"
|
||||
find('label', text: 'Inéligibilité des dossiers').click
|
||||
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
|
Loading…
Add table
Add a link
Reference in a new issue