amelioration(attestation.et.mail): repositionne les messages d'erreur lié à la substitution des balises a proximité du formulaire pour faciliter la comprehension. passage des champs au DSFR

This commit is contained in:
Martin 2022-12-15 13:08:20 +01:00 committed by mfo
parent 06ad436ded
commit ef389eab41
16 changed files with 204 additions and 104 deletions

View file

@ -3,7 +3,8 @@
// override default transparent background on inputs & font-size to 16px by default // override default transparent background on inputs & font-size to 16px by default
input, input,
textarea, textarea,
select { select,
.procedure-form__column--form .fr-input { //FIXME when DSFR is DONE
background: $white; background: $white;
font-size: 1em; font-size: 1em;
} }

View file

@ -0,0 +1,76 @@
class Dsfr::InputComponent < ApplicationComponent
def initialize(form:, attribute:, input_type:, opts: {}, required: true)
@form = form
@attribute = attribute
@input_type = input_type
@opts = opts
@required = required
end
def input_opts
@opts[:class] = class_names(map_array_to_hash_with_true(@opts[:class])
.merge('fr-input': true,
'fr-mb-0': true,
'fr-input--error': errors_on_attribute?))
if errors_on_attribute?
@opts = @opts.deep_merge(aria: {
describedby: error_message_id,
invalid: true
})
end
if @required
@opts[:required] = true
end
@opts
end
# add invalid class on input when input is invalid
# and and valid on input only if another input is invalid
def input_group_class_names
class_names('fr-input-group': true,
"fr-input-group--error": errors_on_attribute?,
"fr-input-group--valid": !errors_on_attribute? && errors_on_another_attribute?)
end
# tried to inline it within the template, but failed miserably with a double render
def label
label = @form.object.class.human_attribute_name(@attribute)
if @required
label += tag.span(" *", class: 'mandatory')
end
label
end
def errors_on_attribute?
@form.object.errors.has_key?(attribute_or_rich_body)
end
def error_message_id
dom_id(@form.object, @attribute)
end
def error_messages
@form.object.errors.full_messages_for(attribute_or_rich_body)
end
private
def errors_on_another_attribute?
!@form.object.errors.empty?
end
def attribute_or_rich_body
case @input_type
when :rich_text_area
@attribute.to_s.sub(/\Arich_/, '').to_sym
else
@attribute
end
end
def map_array_to_hash_with_true(array_or_string_or_nil)
Array(array_or_string_or_nil).to_h { [_1, true] }
end
end

View file

@ -0,0 +1,14 @@
%div{ class: input_group_class_names }
= @form.label @attribute, label.html_safe, class: "fr-label"
= @form.send(@input_type, @attribute, input_opts)
- if errors_on_attribute?
- if error_messages.size == 1
%p.fr-error-text{ id: error_message_id }= error_messages.first
- else
%div.fr-error-text{ id: error_message_id }
%ul
- error_messages.map do |error_message|
%li= error_message

View file

@ -14,11 +14,11 @@ module Administrateurs
@attestation_template = @procedure.attestation_template @attestation_template = @procedure.attestation_template
if @attestation_template.update(activated_attestation_params) if @attestation_template.update(activated_attestation_params)
flash.notice = "Le model de lattestation a bien été modifiée" flash.notice = "Le modèle de lattestation a bien été modifié"
redirect_to edit_admin_procedure_attestation_template_path(@procedure) redirect_to edit_admin_procedure_attestation_template_path(@procedure)
else else
flash.now.alert = @attestation_template.errors.full_messages flash.now.alert = "Le modèle de lattestation contient des erreurs et n'a pas pu être enregistré, veuillez les corriger."
render :edit render :edit
end end
@ -28,7 +28,7 @@ module Administrateurs
@attestation_template = build_attestation_template(activated_attestation_params) @attestation_template = build_attestation_template(activated_attestation_params)
if @attestation_template.save if @attestation_template.save
flash.notice = "Le model de lattestation a bien été enregistrée" flash.notice = "Le modèle de lattestation a bien été enregistré"
redirect_to edit_admin_procedure_attestation_template_path(@procedure) redirect_to edit_admin_procedure_attestation_template_path(@procedure)
else else

View file

@ -25,7 +25,7 @@ module Administrateurs
flash.notice = "Email mis à jour" flash.notice = "Email mis à jour"
redirect_to edit_admin_procedure_mail_template_path(mail_template.procedure_id, params[:id]) redirect_to edit_admin_procedure_mail_template_path(mail_template.procedure_id, params[:id])
else else
flash.now.alert = mail_template.errors.full_messages flash.now.alert = "Lemail contient des erreurs et na pas pu être enregistré, veuillez les corriger."
mail_template.rich_body = mail_template.body mail_template.rich_body = mail_template.body
@mail_template = mail_template @mail_template = mail_template

View file

@ -1,12 +1,6 @@
= f.label :title do = render Dsfr::InputComponent.new(form: f, attribute: :title, input_type: :text_field, opts: {})
Titre de l'attestation
%span.mandatory *
= f.text_field :title, class: 'form-control', placeholder: 'Titre de lattestation'
= f.label :body do = render Dsfr::InputComponent.new(form: f, attribute: :body, input_type: :text_area, opts: { rows: '6', placeholder: 'Description de la démarche, destinataires, etc. '})
Corps du document
%span.mandatory *
= f.text_area :body, rows: '6', placeholder: 'Description de la démarche, destinataires, etc. ', class: 'form-control'
#tags-table #tags-table
%h2.add-tag-title %h2.add-tag-title
@ -40,6 +34,4 @@
%br %br
Dimensions conseillées : au minimum 500 px de largeur ou de hauteur, poids maximum : 0,5 Mo. Dimensions conseillées : au minimum 500 px de largeur ou de hauteur, poids maximum : 0,5 Mo.
= f.label :footer do = render Dsfr::InputComponent.new(form: f, attribute: :footer, input_type: :text_field, opts: { maxlength: 190, size: nil }, required: false)
Pied de page
= f.text_field :footer, class: 'form-control', maxlength: 190, size: nil

View file

@ -1,12 +1,6 @@
= f.label :subject do = render Dsfr::InputComponent.new(form: f, attribute: :subject, input_type: :text_field, opts: {})
Objet de l'email
%span.mandatory *
= f.text_field :subject, required: true
= f.label :body do = render Dsfr::InputComponent.new(form: f, attribute: :rich_body, input_type: :rich_text_area, opts: { class: 'fr-mb-4vh'})
Corps de l'email
%span.mandatory *
= f.rich_text_area :rich_body, required: true, class: "mb-4"
#tags-table{ 'data-controller': 'trix' } #tags-table{ 'data-controller': 'trix' }
%h2.add-tag-title %h2.add-tag-title

View file

@ -1,20 +1,27 @@
fr: fr:
activerecord: activerecord:
models:
attestation_template: 'Attestation'
attributes:
attestation_template:
title: Titre de lattestation
body: Contenu de lattestation
footer: Pied de page
errors: errors:
models: models:
attestation_template: attestation_template:
attributes: attributes:
title: title:
format: Le titre du modèle de lattestation %{message} format: Le titre de lattestation %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.
body: body:
format: Le contenu du modèle de lattestation %{message} format: Le contenu de lattestation %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.

View file

@ -1,20 +1,24 @@
fr: fr:
activerecord: activerecord:
attributes:
mails/closed_mail:
subject: Objet de lemail
rich_body: Corps de lemail
errors: errors:
models: models:
mails/closed_mail: mails/closed_mail:
attributes: attributes:
subject: subject:
format: Le titre de lemail de notification dacceptation de dossier %{message} format: Lobjet de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.
body: body:
format: Le contenu de lemail de notification dacceptation de dossier %{message} format: Le corps de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.

View file

@ -1,20 +1,24 @@
fr: fr:
activerecord: activerecord:
attributes:
mails/initiated_mail:
subject: Objet de lemail
rich_body: Corps de lemail
errors: errors:
models: models:
mails/initiated_mail: mails/initiated_mail:
attributes: attributes:
subject: subject:
format: Le titre de lemail de notification de passage du dossier en instruction %{message} format: Lobjet de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.
body: body:
format: Le contenu de lemail de notification de passage du dossier en instruction %{message} format: Le corps de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publié.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimé.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.

View file

@ -1,20 +1,24 @@
fr: fr:
activerecord: activerecord:
attributes:
mails/received_mail:
subject: Objet de lemail
rich_body: Corps de lemail
errors: errors:
models: models:
mails/received_mail: mails/received_mail:
attributes: attributes:
subject: subject:
format: Le titre de lemail de notification de dépot de dossier %{message} format: Lobjet de lemail lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.
body: body:
format: Le contenu de lemail de notification de dépot de dossier %{message} format: Le corps de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.

View file

@ -1,20 +1,24 @@
fr: fr:
activerecord: activerecord:
attributes:
mails/refused_mail:
subject: Objet de lemail
rich_body: Corps de lemail
errors: errors:
models: models:
mails/refused_mail: mails/refused_mail:
attributes: attributes:
subject: subject:
format: Le titre de lemail de notification de refus de dossier %{message} format: Lobjet de lemail %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publié champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.
body: body:
format: Le contenu de lemail de notification de refus de dossier %{message} format: Le contenu de lemail de notification de refus de dossier %{message}
champ_missing: réfère au champ "%{tag}" qui nexiste pas champ_missing: contient la balise "%{tag}" qui nexiste pas, veuillez la supprimer.
champ_missing_in_draft_revision: réfère au champ "%{tag}" qui a été supprimé mais la suppression nest pas encore publiée champ_missing_in_draft_revision: contient la balise "%{tag}" qui a été supprimée mais la suppression nest pas encore publiée.
champ_missing_in_published_revision: réfère au champ "%{tag}" qui nest pas encore publiée champ_missing_in_published_revision: contient la balise "%{tag}" qui nest pas encore publiée.
champ_missing_in_published_and_draft_revision: réfère au champ "%{tag}" qui a été supprimé champ_missing_in_published_and_draft_revision: contient la balise "%{tag}" qui a été supprimée.
champ_missing_in_previous_revision: réfère au champ "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement champ_missing_in_previous_revision: contient la balise "%{tag}" qui nexiste pas sur un des dossiers en cours de traitement.

View file

@ -180,7 +180,7 @@ describe Administrateurs::AttestationTemplatesController, type: :controller do
expect(procedure.attestation_template.logo.download).to eq(logo2.read) expect(procedure.attestation_template.logo.download).to eq(logo2.read)
expect(procedure.attestation_template.signature.download).to eq(signature2.read) expect(procedure.attestation_template.signature.download).to eq(signature2.read)
expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure) expect(response).to redirect_to edit_admin_procedure_attestation_template_path(procedure)
expect(flash.notice).to eq("Le model de lattestation a bien été modifiée") expect(flash.notice).to eq("Le modèle de lattestation a bien été modifiée")
end end
end end
@ -233,33 +233,32 @@ describe Administrateurs::AttestationTemplatesController, type: :controller do
context 'with invalid tag' do context 'with invalid tag' do
let(:body) { 'body --yolo--' } let(:body) { 'body --yolo--' }
it { expect(flash.alert).to eq("Le modèle de lattestation contient des erreurs et n'a pas pu être enregistré, veuillez les corriger.") }
it { expect(flash.alert).to eq(['Le contenu du modèle de lattestation réfère au champ "yolo" qui nexiste pas']) }
end end
context 'with removed champ' do context 'with removed champ' do
render_views
let(:body) { "body --#{removed_type_de_champ.libelle}--" } let(:body) { "body --#{removed_type_de_champ.libelle}--" }
it { expect(response.body).to have_content("Le contenu de lattestation contient la balise \"#{removed_type_de_champ.libelle}\" qui a été supprimée mais la suppression nest pas encore publiée.") }
it { expect(flash.alert).to eq(["Le contenu du modèle de lattestation réfère au champ \"#{removed_type_de_champ.libelle}\" qui a été supprimé mais la suppression nest pas encore publiée"]) }
end end
context 'with removed and published' do context 'with removed and published' do
render_views
let(:body) { "body --#{removed_and_published_type_de_champ.libelle}--" } let(:body) { "body --#{removed_and_published_type_de_champ.libelle}--" }
it { expect(response.body).to have_content("Le contenu de lattestation contient la balise \"#{removed_and_published_type_de_champ.libelle}\" qui a été supprimée.") }
it { expect(flash.alert).to eq(["Le contenu du modèle de lattestation réfère au champ \"#{removed_and_published_type_de_champ.libelle}\" qui a été supprimé"]) }
end end
context 'with new champ missing on dossier submitted on previous revision' do context 'with new champ missing on dossier submitted on previous revision' do
render_views
let(:dossier) { create(:dossier, :en_construction, procedure: procedure, revision: procedure.revisions.first) } let(:dossier) { create(:dossier, :en_construction, procedure: procedure, revision: procedure.revisions.first) }
let(:body) { "body --#{new_type_de_champ.libelle}--" } let(:body) { "body --#{new_type_de_champ.libelle}--" }
it { expect(response.body).to have_content("Le contenu de lattestation contient la balise \"#{new_type_de_champ.libelle}\" qui nexiste pas sur un des dossiers en cours de traitement") }
it { expect(flash.alert).to eq(["Le contenu du modèle de lattestation réfère au champ \"#{new_type_de_champ.libelle}\" qui nexiste pas sur un des dossiers en cours de traitement"]) }
end end
context 'with champ on draft' do context 'with champ on draft' do
render_views
let(:body) { "body --#{draft_type_de_champ.libelle}--" } let(:body) { "body --#{draft_type_de_champ.libelle}--" }
it { expect(response.body).to have_content("Le contenu de lattestation contient la balise \"#{draft_type_de_champ.libelle}\" qui nest pas encore publiée") }
it { expect(flash.alert).to eq(["Le contenu du modèle de lattestation réfère au champ \"#{draft_type_de_champ.libelle}\" qui nest pas encore publié"]) }
end end
end end
end end

View file

@ -73,7 +73,7 @@ describe Administrateurs::MailTemplatesController, type: :controller do
it do it do
expect(subject.body).not_to eq(mail_body) expect(subject.body).not_to eq(mail_body)
expect(response.body).to match("Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"numéro\" qui nexiste pas") expect(response.body).to match("Le corps de lemail contient la balise &quot;numéro&quot; qui nexiste pas, veuillez la supprimer.")
end end
end end
end end

View file

@ -38,7 +38,7 @@ describe Mails::InitiatedMail, type: :model do
context 'template with invalid tag' do context 'template with invalid tag' do
let(:email_body) { 'foo --numéro du -- bar' } let(:email_body) { 'foo --numéro du -- bar' }
it { expect(subject.errors.full_messages).to eq(["Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"numéro du\" qui nexiste pas"]) } it { expect(subject.errors.full_messages).to eq(["Le corps de lemail contient la balise \"numéro du\" qui nexiste pas, veuillez la supprimer."]) }
end end
context 'template with unpublished tag' do context 'template with unpublished tag' do
@ -48,7 +48,7 @@ describe Mails::InitiatedMail, type: :model do
procedure.draft_revision.add_type_de_champ(type_champ: :integer_number, libelle: 'age') procedure.draft_revision.add_type_de_champ(type_champ: :integer_number, libelle: 'age')
end end
it { expect(subject.errors.full_messages).to eq(["Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"age\" qui nest pas encore publié"]) } it { expect(subject.errors.full_messages).to eq(["Le corps de lemail contient la balise \"age\" qui nest pas encore publié."]) }
end end
context 'template with removed but unpublished tag' do context 'template with removed but unpublished tag' do
@ -58,7 +58,7 @@ describe Mails::InitiatedMail, type: :model do
procedure.draft_revision.remove_type_de_champ(type_de_champ.stable_id) procedure.draft_revision.remove_type_de_champ(type_de_champ.stable_id)
end end
it { expect(subject.errors.full_messages).to eq(["Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"nom\" qui a été supprimé mais la suppression nest pas encore publiée"]) } it { expect(subject.errors.full_messages).to eq(["Le corps de lemail contient la balise \"nom\" qui a été supprimé mais la suppression nest pas encore publiée."]) }
end end
context 'template with removed tag' do context 'template with removed tag' do
@ -69,7 +69,7 @@ describe Mails::InitiatedMail, type: :model do
procedure.publish_revision! procedure.publish_revision!
end end
it { expect(subject.errors.full_messages).to eq(["Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"nom\" qui a été supprimé"]) } it { expect(subject.errors.full_messages).to eq(["Le corps de lemail contient la balise \"nom\" qui a été supprimé."]) }
end end
context 'template with new tag and old dossier' do context 'template with new tag and old dossier' do
@ -81,7 +81,7 @@ describe Mails::InitiatedMail, type: :model do
procedure.publish_revision! procedure.publish_revision!
end end
it { expect(subject.errors.full_messages).to eq(["Le contenu de lemail de notification de passage du dossier en instruction réfère au champ \"age\" qui nexiste pas sur un des dossiers en cours de traitement"]) } it { expect(subject.errors.full_messages).to eq(["Le corps de lemail contient la balise \"age\" qui nexiste pas sur un des dossiers en cours de traitement."]) }
end end
end end
end end

View file

@ -29,11 +29,12 @@ describe 'As an administrateur, I want to manage the procedures attestation',
# now process to enable attestation # now process to enable attestation
find_attestation_card.click find_attestation_card.click
fill_in "Titre de l'attestation", with: 'BOOM' fill_in "Titre de lattestation", with: 'BOOM'
fill_in "Corps du document", with: 'BOOM' fill_in "Contenu de l'attestation", with: 'BOOM'
find('.toggle-switch-control').click find('.toggle-switch-control').click
click_on 'Enregistrer' click_on 'Enregistrer'
page.find(".alert-success", text: "Le model de lattestation a bien été enregistrée")
page.find(".alert-success", text: "Le modèle de lattestation a bien été enregistré")
# check attestation # check attestation
visit admin_procedure_path(procedure) visit admin_procedure_path(procedure)
@ -49,7 +50,7 @@ describe 'As an administrateur, I want to manage the procedures attestation',
find_attestation_card.click find_attestation_card.click
find('.toggle-switch-control').click find('.toggle-switch-control').click
click_on 'Enregistrer' click_on 'Enregistrer'
page.find(".alert-success", text: "Le model de lattestation a bien été modifiée") page.find(".alert-success", text: "Le modèle de lattestation a bien été modifié")
# check attestation is now disabled # check attestation is now disabled
visit admin_procedure_path(procedure) visit admin_procedure_path(procedure)