models: improve error message for invalid champs

Avoid prepending the message with 'Draft revision '
This commit is contained in:
Pierre de La Morinerie 2021-11-25 07:49:42 +00:00
parent b86dec8251
commit 99c77046d2
5 changed files with 10 additions and 6 deletions

View file

@ -1,7 +1,7 @@
class SiretFormatValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
if !format_is_valid(value)
record.errors.add(attribute, :format)
record.errors.add(attribute, :length)
end
if !luhn_passed(value)

View file

@ -51,6 +51,9 @@ module TPS
# Set the queue name for the mail delivery jobs to 'mailers'
config.action_mailer.deliver_later_queue_name = :mailers
# Allow the error messages format to be customized
config.active_model.i18n_customize_full_message = true
# Set the queue name for the analysis jobs to 'active_storage_analysis'
config.active_storage.queues.analysis = :active_storage_analysis

View file

@ -23,4 +23,5 @@ fr:
attributes:
api_particulier_token:
invalid: 'na pas le bon format'
draft_revision:
format: '%{message}'

View file

@ -10,6 +10,6 @@ fr:
siret:
attributes:
siret:
format: 'Le numéro SIRET doit comporter 14 chiffres'
length: 'Le numéro SIRET doit comporter 14 chiffres'
checksum: 'Le numéro SIRET comporte une erreur, vérifiez les chiffres composant le numéro'
invalid: 'Le numéro SIRET ne correspond pas à un établissement existant'

View file

@ -297,21 +297,21 @@ describe Procedure do
it 'validates that no repetition type de champ is empty' do
procedure.validate
expect(procedure.errors[:draft_revision]).to include(invalid_repetition_error_message)
expect(procedure.errors.full_messages_for(:draft_revision)).to include(invalid_repetition_error_message)
text_field.revision = repetition.revision
text_field.order_place = repetition.types_de_champ.size
procedure.draft_revision.types_de_champ.find(&:repetition?).types_de_champ << text_field
procedure.validate
expect(procedure.errors[:draft_revision]).not_to include(invalid_repetition_error_message)
expect(procedure.errors.full_messages_for(:draft_revision)).not_to include(invalid_repetition_error_message)
end
end
context 'when validating for publication' do
it 'validates that no repetition type de champ is empty' do
procedure.validate(:publication)
expect(procedure.errors[:draft_revision]).to include(invalid_repetition_error_message)
expect(procedure.errors.full_messages_for(:draft_revision)).to include(invalid_repetition_error_message)
end
end
end