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
|
# type_de_champ_id :integer
|
||||||
#
|
#
|
||||||
class Champs::IbanChamp < Champ
|
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
|
end
|
||||||
|
|
|
@ -6,6 +6,13 @@ describe Champs::IbanChamp do
|
||||||
expect(build(:champ_iban, value: "FR7630006000011234567890189")).to be_valid
|
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 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 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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue