refactor(champ): mandatory_blank_and_visible? -> mandatory_blank?

As the method does not check visibility
This commit is contained in:
simon lehericey 2022-10-17 10:38:23 +02:00 committed by LeSim
parent 6832b12bd4
commit 9bba2093be
8 changed files with 18 additions and 18 deletions

View file

@ -101,7 +101,7 @@ class Champ < ApplicationRecord
type_de_champ.mandatory? && visible?
end
def mandatory_blank_and_visible?
def mandatory_blank?
mandatory? && blank?
end

View file

@ -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

View file

@ -38,7 +38,7 @@ class Champs::PieceJustificativeChamp < Champ
# We dont know how to search inside documents yet
end
def mandatory_blank_and_visible?
def mandatory_blank?
mandatory? && !piece_justificative_file.attached?
end

View file

@ -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

View file

@ -32,7 +32,7 @@ class Champs::TitreIdentiteChamp < Champ
# We dont know how to search inside documents yet
end
def mandatory_blank_and_visible?
def mandatory_blank?
mandatory? && !piece_justificative_file.attached?
end

View file

@ -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

View file

@ -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

View file

@ -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