47 lines
2.2 KiB
Ruby
47 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
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("Désactivé")
|
||
|
||
# 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 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é"
|
||
|
||
# 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: 'Bloquer le dépôt des dossiers répondant à des conditions d’inéligibilité').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
|