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