Compare commits

...

5 commits

Author SHA1 Message Date
Paul Chavard
9a22c25c1c
Merge pull request #8899 from demarches-simplifiees/8738-validate-adresse-electronique
ETQ usager, je veux que les champs de type adresse électronique soit validé
2023-04-26 16:52:02 +00:00
Paul Chavard
0e03ab653a
Merge pull request #8968 from demarches-simplifiees/fix_defaut_groupe_instructeur_again
Correctif: definit le groupe instructeur par defaut pour certaines procedure clonées
2023-04-26 16:51:40 +00:00
simon lehericey
0934a672fe fix: defaut_groupe_instructeur for a cloned procedure from another admin without a group with default label 2023-04-26 10:52:31 +02:00
simon lehericey
dce2bf3209 spec: move procedure.clone in subject, to enable future before 2023-04-26 10:47:51 +02:00
krichtof
c2461f230c validate value for email champ 2023-04-20 18:27:02 +02:00
6 changed files with 58 additions and 4 deletions

View file

@ -21,4 +21,11 @@
# type_de_champ_id :integer
#
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

View file

@ -580,7 +580,8 @@ class Procedure < ApplicationRecord
procedure.draft_revision.types_de_champ_public.each { |tdc| tdc.options&.delete(:old_pj) }
end
new_defaut_groupe = procedure.groupe_instructeurs.find_by(label: defaut_groupe_instructeur.label)
new_defaut_groupe = procedure.groupe_instructeurs
.find_by(label: defaut_groupe_instructeur.label) || procedure.groupe_instructeurs.first
procedure.update!(defaut_groupe_instructeur: new_defaut_groupe)
procedure

View file

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

View file

@ -562,6 +562,10 @@ fr:
attributes:
email:
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:
attributes: &error_attributes
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

View file

@ -504,13 +504,12 @@ describe Procedure do
let!(:assign_to_1) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_1) }
let!(:assign_to_2) { create(:assign_to, procedure: procedure, groupe_instructeur: groupe_instructeur_1, instructeur: instructeur_2) }
before do
subject do
@procedure = procedure.clone(administrateur, from_library)
@procedure.save
@procedure
end
subject { @procedure }
it { expect(subject.parent_procedure).to eq(procedure) }
describe "should keep groupe instructeurs " do
@ -623,6 +622,16 @@ describe Procedure do
let(:administrateur) { create(:administrateur) }
let(:opendata) { false }
context 'and the procedure does not have a groupe with the defaut label' do
before do
procedure.defaut_groupe_instructeur.update!(label: 'another label')
end
it "affects the first groupe as the defaut groupe" do
expect(subject.defaut_groupe_instructeur).to eq(subject.groupe_instructeurs.first)
end
end
it 'should not clone service' do
expect(subject.service).to eq(nil)
end