demarches-normaliennes/spec/models/champs/integer_number_champ_spec.rb

59 lines
1.5 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2018-10-31 19:48:28 +01:00
describe Champs::IntegerNumberChamp do
let(:champ) { Champs::IntegerNumberChamp.new(value:, dossier: build(:dossier)) }
before do
allow(champ).to receive(:visible?).and_return(true)
allow(champ).to receive(:in_dossier_revision?).and_return(true)
end
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 }
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 }
it 'is not valid and contains errors' do
is_expected.to be_falsey
expect(champ.errors[:value]).to eq(["doit être un nombre entier (sans chiffres après la virgule)"])
end
2018-10-31 19:48:28 +01:00
end
context 'when the value is not a number' do
let(:value) { 'toto' }
it 'is not valid and contains errors' do
is_expected.to be_falsey
expect(champ.errors[:value]).to eq(["doit être un nombre entier (sans chiffres après la virgule)"])
end
2018-10-31 19:48:28 +01:00
end
2018-11-29 14:35:42 +01: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) { '' }
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 }
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