This commit is contained in:
simon lehericey 2022-09-26 21:19:00 +02:00
parent 12b6a0d6d6
commit cd2b08e39b
5 changed files with 8 additions and 8 deletions

View file

@ -156,7 +156,7 @@ class TypesDeChampEditor::ConditionsComponent < ApplicationComponent
id: input_id_for('value', row_index) id: input_id_for('value', row_index)
) )
when :enum, :enums when :enum, :enums
enums_for_select = left.options enums_for_select = left.options(@upper_tdcs)
if right_invalid if right_invalid
enums_for_select = empty_target_for_select + enums_for_select enums_for_select = empty_target_for_select + enums_for_select

View file

@ -38,7 +38,7 @@ module Logic
when :empty when :empty
Empty.new Empty.new
when :enum, :enums when :enum, :enums
Constant.new(left.options.first.second) Constant.new(left.options(type_de_champs).first.second)
when :number when :number
Constant.new(0) Constant.new(0)
end end

View file

@ -14,7 +14,7 @@ class Logic::Eq < Logic::BinaryOperator
operator_name: self.class.name operator_name: self.class.name
} }
elsif @left.type(type_de_champs) == :enum && elsif @left.type(type_de_champs) == :enum &&
!left.options.map(&:second).include?(right.value) !left.options(type_de_champs).map(&:second).include?(right.value)
errors << { errors << {
type: :not_included, type: :not_included,
stable_id: @left.stable_id, stable_id: @left.stable_id,

View file

@ -6,7 +6,7 @@ class Logic::IncludeOperator < Logic::BinaryOperator
if left_not_a_list?(type_de_champs) if left_not_a_list?(type_de_champs)
result << { type: :required_list } result << { type: :required_list }
elsif right_value_not_in_list? elsif right_value_not_in_list?(type_de_champs)
result << { result << {
type: :not_included, type: :not_included,
stable_id: @left.stable_id, stable_id: @left.stable_id,
@ -23,7 +23,7 @@ class Logic::IncludeOperator < Logic::BinaryOperator
@left.type(type_de_champs) != :enums @left.type(type_de_champs) != :enums
end end
def right_value_not_in_list? def right_value_not_in_list?(type_de_champs)
!@left.options.map(&:second).include?(@right.value) !@left.options(type_de_champs).map(&:second).include?(@right.value)
end end
end end

View file

@ -53,13 +53,13 @@ describe Logic::ChampValue do
it { expect(champ_value(champ.stable_id).type([champ.type_de_champ])).to eq(:enum) } it { expect(champ_value(champ.stable_id).type([champ.type_de_champ])).to eq(:enum) }
it { is_expected.to eq('val1') } it { is_expected.to eq('val1') }
it { expect(champ_value(champ.stable_id).options).to match_array([["val1", "val1"], ["val2", "val2"], ["val3", "val3"]]) } it { expect(champ_value(champ.stable_id).options([champ.type_de_champ])).to match_array([["val1", "val1"], ["val2", "val2"], ["val3", "val3"]]) }
context 'with other enabled' do context 'with other enabled' do
let(:champ) { create(:champ_drop_down_list, value: 'val1', other: true) } let(:champ) { create(:champ_drop_down_list, value: 'val1', other: true) }
it { is_expected.to eq('val1') } it { is_expected.to eq('val1') }
it { expect(champ_value(champ.stable_id).options).to match_array([["val1", "val1"], ["val2", "val2"], ["val3", "val3"], ["Autre", "__other__"]]) } it { expect(champ_value(champ.stable_id).options([champ.type_de_champ])).to match_array([["val1", "val1"], ["val2", "val2"], ["val3", "val3"], ["Autre", "__other__"]]) }
end end
context 'with other filled' do context 'with other filled' do