demarches-normaliennes/spec/system/administrateurs/procedure_attestation_template_spec.rb

62 lines
2.1 KiB
Ruby
Raw Normal View History

require 'system/administrateurs/procedure_spec_helper'
2023-08-31 09:59:18 +02:00
describe 'As an administrateur, I want to manage the procedures attestation', js: true, retry: 3 do
include ProcedureSpecHelper
let(:administrateur) { create(:administrateur) }
let(:procedure) do
create(:procedure, :with_service, :with_instructeur, :with_zone,
aasm_state: :brouillon,
administrateurs: [administrateur],
libelle: 'libellé de la procédure',
path: 'libelle-de-la-procedure')
end
before { login_as(administrateur.user, scope: :user) }
def find_attestation_card(with_nested_selector: nil)
full_selector = [
"a[href=\"#{edit_admin_procedure_attestation_template_path(procedure)}\"]",
with_nested_selector
].compact.join(" ")
page.find(full_selector)
end
context 'Enable, publish, Disable' do
scenario do
visit admin_procedure_path(procedure)
# start with no attestation
find_attestation_card(with_nested_selector: ".icon.clock")
# now process to enable attestation
find_attestation_card.click
fill_in "Titre de lattestation", with: 'BOOM'
fill_in "Contenu de lattestation", with: 'BOOM'
find('.toggle-switch-control').click
click_on 'Enregistrer'
page.find(".alert-success", text: "Le modèle de lattestation a bien été enregistré")
# check attestation
visit admin_procedure_path(procedure)
find_attestation_card(with_nested_selector: ".icon.accept")
# publish procedure
# click CTA for publication screen
click_on("Publier")
# validate publication
2023-10-10 16:51:06 +02:00
within('form') { click_on 'Publier' }
click_on("Revenir à la page de la démarche")
# now process to disable attestation
find_attestation_card.click
find('.toggle-switch-control').click
click_on 'Enregistrer'
page.find(".alert-success", text: "Le modèle de lattestation a bien été modifié")
# check attestation is now disabled
visit admin_procedure_path(procedure)
find_attestation_card(with_nested_selector: ".icon.clock")
end
end
end