From 9bba2093be698aa4885acb6c232a67dda5e5e1ee Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Mon, 17 Oct 2022 10:38:23 +0200 Subject: [PATCH] refactor(champ): mandatory_blank_and_visible? -> mandatory_blank? As the method does not check visibility --- app/models/champ.rb | 2 +- app/models/champs/checkbox_champ.rb | 2 +- app/models/champs/piece_justificative_champ.rb | 2 +- app/models/champs/siret_champ.rb | 2 +- app/models/champs/titre_identite_champ.rb | 2 +- app/models/dossier.rb | 2 +- spec/models/champ_shared_example.rb | 14 +++++++------- .../champs/linked_drop_down_list_champ_spec.rb | 10 +++++----- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/models/champ.rb b/app/models/champ.rb index 0d8d766a8..ac7439d9f 100644 --- a/app/models/champ.rb +++ b/app/models/champ.rb @@ -101,7 +101,7 @@ class Champ < ApplicationRecord type_de_champ.mandatory? && visible? end - def mandatory_blank_and_visible? + def mandatory_blank? mandatory? && blank? end diff --git a/app/models/champs/checkbox_champ.rb b/app/models/champs/checkbox_champ.rb index 5f52edfd1..c9bbfb584 100644 --- a/app/models/champs/checkbox_champ.rb +++ b/app/models/champs/checkbox_champ.rb @@ -28,7 +28,7 @@ class Champs::CheckboxChamp < Champs::YesNoChamp true? ? 'on' : 'off' end - def mandatory_blank_and_visible? + def mandatory_blank? mandatory? && (blank? || !true?) end end diff --git a/app/models/champs/piece_justificative_champ.rb b/app/models/champs/piece_justificative_champ.rb index 96923f3c2..dfde878e5 100644 --- a/app/models/champs/piece_justificative_champ.rb +++ b/app/models/champs/piece_justificative_champ.rb @@ -38,7 +38,7 @@ class Champs::PieceJustificativeChamp < Champ # We don’t know how to search inside documents yet end - def mandatory_blank_and_visible? + def mandatory_blank? mandatory? && !piece_justificative_file.attached? end diff --git a/app/models/champs/siret_champ.rb b/app/models/champs/siret_champ.rb index d9c9d9852..2b527caf9 100644 --- a/app/models/champs/siret_champ.rb +++ b/app/models/champs/siret_champ.rb @@ -24,7 +24,7 @@ class Champs::SiretChamp < Champ etablissement.present? ? etablissement.search_terms : [value] end - def mandatory_blank_and_visible? + def mandatory_blank? mandatory? && Siret.new(siret: value).invalid? end end diff --git a/app/models/champs/titre_identite_champ.rb b/app/models/champs/titre_identite_champ.rb index a89486112..ae2f2aa9b 100644 --- a/app/models/champs/titre_identite_champ.rb +++ b/app/models/champs/titre_identite_champ.rb @@ -32,7 +32,7 @@ class Champs::TitreIdentiteChamp < Champ # We don’t know how to search inside documents yet end - def mandatory_blank_and_visible? + def mandatory_blank? mandatory? && !piece_justificative_file.attached? end diff --git a/app/models/dossier.rb b/app/models/dossier.rb index 487d61bb2..1442e4b41 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -983,7 +983,7 @@ class Dossier < ApplicationRecord def check_mandatory_champs (champs + champs.filter(&:block?).filter(&:visible?).flat_map(&:champs)) - .filter(&:mandatory_blank_and_visible?) + .filter(&:mandatory_blank?) .map do |champ| "Le champ #{champ.libelle.truncate(200)} doit être rempli." end diff --git a/spec/models/champ_shared_example.rb b/spec/models/champ_shared_example.rb index 852767dec..4d9c3d3aa 100644 --- a/spec/models/champ_shared_example.rb +++ b/spec/models/champ_shared_example.rb @@ -1,26 +1,26 @@ shared_examples 'champ_spec' do - describe 'mandatory_blank_and_visible?' do + describe 'mandatory_blank?' do let(:type_de_champ) { build(:type_de_champ, mandatory: mandatory) } let(:champ) { build(:champ, type_de_champ: type_de_champ, value: value) } let(:value) { '' } let(:mandatory) { true } context 'when mandatory and blank' do - it { expect(champ.mandatory_blank_and_visible?).to be(true) } + it { expect(champ.mandatory_blank?).to be(true) } end context 'when carte mandatory and blank' do let(:type_de_champ) { build(:type_de_champ_carte, mandatory: mandatory) } let(:champ) { build(:champ_carte, type_de_champ: type_de_champ, value: value) } let(:value) { nil } - it { expect(champ.mandatory_blank_and_visible?).to be(true) } + it { expect(champ.mandatory_blank?).to be(true) } end context 'when multiple_drop_down_list mandatory and blank' do let(:type_de_champ) { build(:type_de_champ_multiple_drop_down_list, mandatory: mandatory) } let(:champ) { build(:champ_multiple_drop_down_list, type_de_champ: type_de_champ, value: value) } let(:value) { '[]' } - it { expect(champ.mandatory_blank_and_visible?).to be(true) } + it { expect(champ.mandatory_blank?).to be(true) } end context 'when repetition blank' do @@ -39,18 +39,18 @@ shared_examples 'champ_spec' do context 'when not blank' do let(:value) { 'yop' } - it { expect(champ.mandatory_blank_and_visible?).to be(false) } + it { expect(champ.mandatory_blank?).to be(false) } end context 'when not mandatory' do let(:mandatory) { false } - it { expect(champ.mandatory_blank_and_visible?).to be(false) } + it { expect(champ.mandatory_blank?).to be(false) } end context 'when not mandatory or blank' do let(:value) { 'u' } let(:mandatory) { false } - it { expect(champ.mandatory_blank_and_visible?).to be(false) } + it { expect(champ.mandatory_blank?).to be(false) } end end diff --git a/spec/models/champs/linked_drop_down_list_champ_spec.rb b/spec/models/champs/linked_drop_down_list_champ_spec.rb index d58889cbf..75a668647 100644 --- a/spec/models/champs/linked_drop_down_list_champ_spec.rb +++ b/spec/models/champs/linked_drop_down_list_champ_spec.rb @@ -78,7 +78,7 @@ describe Champs::LinkedDropDownListChamp do let(:type_de_champ) { build(:type_de_champ_linked_drop_down_list, drop_down_list_value: value) } it 'blank is fine' do - is_expected.not_to be_mandatory_blank_and_visible + is_expected.not_to be_mandatory_blank end end @@ -86,27 +86,27 @@ describe Champs::LinkedDropDownListChamp do let(:type_de_champ) { build(:type_de_champ_linked_drop_down_list, mandatory: true, drop_down_list_value: value) } context 'when there is no value' do - it { is_expected.to be_mandatory_blank_and_visible } + it { is_expected.to be_mandatory_blank } end context 'when there is a primary value' do before { subject.primary_value = 'Primary' } context 'when there is no secondary value' do - it { is_expected.to be_mandatory_blank_and_visible } + it { is_expected.to be_mandatory_blank } end context 'when there is a secondary value' do before { subject.secondary_value = 'Secondary' } - it { is_expected.not_to be_mandatory_blank_and_visible } + it { is_expected.not_to be_mandatory_blank } end context 'when there is nothing to select for the secondary value' do let(:value) { "--A--\nAbbott\nAbelard\n--B--\n--C--\nCynthia" } before { subject.primary_value = 'B' } - it { is_expected.not_to be_mandatory_blank_and_visible } + it { is_expected.not_to be_mandatory_blank } end end end