demarches-normaliennes/spec/models/champ_shared_example.rb

67 lines
1.8 KiB
Ruby
Raw Normal View History

shared_examples 'champ_spec' do
2017-03-29 13:37:07 +02:00
describe 'mandatory_and_blank?' do
let(:type_de_champ) { build(:type_de_champ, mandatory: mandatory) }
2018-02-09 17:38:30 +01:00
let(:champ) { type_de_champ.champ.build(value: value) }
2017-03-29 13:37:07 +02:00
let(:value) { '' }
let(:mandatory) { true }
context 'when mandatory and blank' do
it { expect(champ.mandatory_and_blank?).to be(true) }
end
context 'when carte mandatory and blank' do
let(:type_de_champ) { build(:type_de_champ_carte, mandatory: mandatory) }
let(:value) { '[]' }
it { expect(champ.mandatory_and_blank?).to be(true) }
end
2017-03-29 13:37:07 +02:00
context 'when not blank' do
let(:value) { 'yop' }
it { expect(champ.mandatory_and_blank?).to be(false) }
end
context 'when not mandatory' do
let(:mandatory) { false }
it { expect(champ.mandatory_and_blank?).to be(false) }
end
context 'when not mandatory or blank' do
let(:value) { 'u' }
let(:mandatory) { false }
it { expect(champ.mandatory_and_blank?).to be(false) }
end
end
describe '.departement', vcr: { cassette_name: 'api_geo_departements' } do
subject { Champs::DepartementChamp.departements }
it { expect(subject).to include '99 - Étranger' }
end
context "when type_champ=date" do
2018-02-14 15:12:57 +01:00
let(:type_de_champ) { create(:type_de_champ_date) }
2018-02-09 17:38:30 +01:00
let(:champ) { type_de_champ.champ.create }
it "should convert %d/%m/%Y format to ISO" do
champ.value = "31/12/2017"
champ.save
champ.reload
expect(champ.value).to eq("2017-12-31")
end
it "should convert to nil if date parse failed" do
champ.value = "bla"
champ.save
champ.reload
expect(champ.value).to be(nil)
end
it "should convert empty string to nil" do
champ.value = ""
champ.save
champ.reload
expect(champ.value).to be(nil)
end
end
2017-04-04 15:27:04 +02:00
end