2024-04-29 00:17:15 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-10-31 19:48:28 +01:00
|
|
|
describe Champs::IntegerNumberChamp do
|
2024-07-01 15:31:32 +02:00
|
|
|
let(:champ) { Champs::IntegerNumberChamp.new(value:, dossier: build(:dossier)) }
|
2024-08-30 16:43:30 +02:00
|
|
|
before { allow(champ).to receive(:visible?).and_return(true) }
|
2024-03-30 08:03:19 +01:00
|
|
|
subject { champ.validate(:champs_public_value) }
|
2018-10-31 19:48:28 +01:00
|
|
|
|
|
|
|
describe '#valid?' do
|
|
|
|
context 'when the value is integer number' do
|
|
|
|
let(:value) { 2 }
|
|
|
|
|
2024-03-30 08:03:19 +01:00
|
|
|
it { is_expected.to be_truthy }
|
2018-10-31 19:48:28 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
context 'when the value is decimal number' do
|
|
|
|
let(:value) { 2.6 }
|
|
|
|
|
2024-03-30 08:03:19 +01:00
|
|
|
it 'is not valid and contains errors' do
|
|
|
|
is_expected.to be_falsey
|
2024-04-08 16:28:08 +02:00
|
|
|
expect(champ.errors[:value]).to eq(["doit être un nombre entier (sans chiffres après la virgule)"])
|
2024-03-30 08:03:19 +01:00
|
|
|
end
|
2018-10-31 19:48:28 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
context 'when the value is not a number' do
|
|
|
|
let(:value) { 'toto' }
|
|
|
|
|
2024-03-30 08:03:19 +01:00
|
|
|
it 'is not valid and contains errors' do
|
|
|
|
is_expected.to be_falsey
|
2024-04-08 16:28:08 +02:00
|
|
|
expect(champ.errors[:value]).to eq(["doit être un nombre entier (sans chiffres après la virgule)"])
|
2024-03-30 08:03:19 +01:00
|
|
|
end
|
2018-10-31 19:48:28 +01:00
|
|
|
end
|
2018-11-29 14:35:42 +01:00
|
|
|
|
2024-06-25 18:01:48 +02:00
|
|
|
context 'when the value is a number with sapces' do
|
|
|
|
let(:value) { ' 120 ' }
|
|
|
|
|
|
|
|
it 'is valid and is formated' do
|
|
|
|
is_expected.to be_truthy
|
|
|
|
champ.save!
|
|
|
|
expect(champ.value).to eq('120')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-11-29 14:35:42 +01:00
|
|
|
context 'when the value is blank' do
|
|
|
|
let(:value) { '' }
|
|
|
|
|
2024-03-30 08:03:19 +01:00
|
|
|
it { is_expected.to be_truthy }
|
2018-11-29 14:35:42 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
context 'when the value is nil' do
|
|
|
|
let(:value) { nil }
|
|
|
|
|
2024-03-30 08:03:19 +01:00
|
|
|
it { is_expected.to be_truthy }
|
2018-11-29 14:35:42 +01:00
|
|
|
end
|
2018-10-31 19:48:28 +01:00
|
|
|
end
|
|
|
|
end
|