fix(iban): format iban after validation
This commit is contained in:
parent
bc5e46e6de
commit
a19bf050ef
2 changed files with 23 additions and 1 deletions
|
@ -20,5 +20,20 @@
|
|||
# type_de_champ_id :integer
|
||||
#
|
||||
class Champs::IbanChamp < Champ
|
||||
validates_with IbanValidator
|
||||
validates_with IbanValidator, if: -> { validation_context != :brouillon }
|
||||
after_validation :format_iban
|
||||
|
||||
def for_api
|
||||
to_s.gsub(/\s+/, '')
|
||||
end
|
||||
|
||||
def for_api_v2
|
||||
for_api
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def format_iban
|
||||
self.value = value&.gsub(/\s+/, '')&.gsub(/(.{4})/, '\0 ')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,6 +6,13 @@ describe Champs::IbanChamp do
|
|||
expect(build(:champ_iban, value: "FR7630006000011234567890189")).to be_valid
|
||||
expect(build(:champ_iban, value: "FR76 3000 6000 0112 3456 7890 189")).to be_valid
|
||||
expect(build(:champ_iban, value: "FR76 3000 6000 0112 3456 7890 189DSF")).to_not be_valid
|
||||
expect(build(:champ_iban, value: "FR76 3000 6000 0112 3456 7890 189")).to be_valid
|
||||
end
|
||||
|
||||
it 'format value after validation' do
|
||||
champ = build(:champ_iban, value: "FR76 3000 6000 0112 3456 7890 189")
|
||||
champ.valid?
|
||||
expect(champ.value).to eq("FR76 3000 6000 0112 3456 7890 189")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue