Merge pull request #8899 from demarches-simplifiees/8738-validate-adresse-electronique

ETQ usager, je veux que les champs de type adresse électronique soit validé
This commit is contained in:
Paul Chavard 2023-04-26 16:52:02 +00:00 committed by GitHub
commit d3eda28f35
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 0 deletions

View file

@ -21,4 +21,11 @@
# type_de_champ_id :integer # type_de_champ_id :integer
# #
class Champs::EmailChamp < Champs::TextChamp class Champs::EmailChamp < Champs::TextChamp
validates :value,
format: {
with: Devise.email_regexp,
message: I18n.t('invalid', scope: 'activerecord.errors.models.email_champ.attributes.value')
},
allow_nil: true,
if: -> { validation_context != :brouillon }
end end

View file

@ -561,6 +561,10 @@ en:
attributes: attributes:
email: email:
taken: ': Invitation already sent' taken: ': Invitation already sent'
email_champ:
attributes:
value:
invalid: "is invalid. Fill in a valid email address, example: john.doe@example.fr"
user: user:
attributes: &error_attributes attributes: &error_attributes

View file

@ -562,6 +562,10 @@ fr:
attributes: attributes:
email: email:
taken: ': Invitation déjà envoyée' taken: ': Invitation déjà envoyée'
email_champ:
attributes:
value:
invalid: "est invalide. Saisir une adresse éléctronique valide, exemple : john.doe@exemple.fr"
user: user:
attributes: &error_attributes attributes: &error_attributes
reset_password_token: reset_password_token:

View file

@ -0,0 +1,29 @@
describe Champs::EmailChamp do
subject { build(:champ_email, value: value).tap(&:valid?) }
describe '#valid?' do
context 'when the value is an email' do
let(:value) { 'jean@dupont.fr' }
it { is_expected.to be_valid }
end
context 'when the value is not an email' do
let(:value) { 'jean@' }
it { is_expected.to_not be_valid }
end
context 'when the value is blank' do
let(:value) { '' }
it { is_expected.to_not be_valid }
end
context 'when the value is nil' do
let(:value) { nil }
it { is_expected.to be_valid }
end
end
end