demarches-normaliennes/spec/models/logic/eq_spec.rb

40 lines
1.1 KiB
Ruby

# frozen_string_literal: true
describe Logic::Eq do
include Logic
describe '#compute' do
it { expect(ds_eq(constant(1), constant(1)).compute).to be(true) }
it { expect(ds_eq(constant(1), constant(2)).compute).to be(false) }
end
describe '#errors' do
it { expect(ds_eq(constant(true), constant(true)).errors).to be_empty }
it do
expected = {
operator_name: "Logic::Eq",
right: constant(1),
stable_id: nil,
type: :incompatible
}
expect(ds_eq(constant(true), constant(1)).errors).to eq([expected])
end
it do
multiple_drop_down = create(:type_de_champ_multiple_drop_down_list)
first_option = multiple_drop_down.drop_down_options.first
expected = {
operator_name: "Logic::Eq",
stable_id: multiple_drop_down.stable_id,
type: :required_include
}
expect(ds_eq(champ_value(multiple_drop_down.stable_id), constant(first_option)).errors([multiple_drop_down])).to eq([expected])
end
end
describe '#==' do
it { expect(ds_eq(constant(true), constant(false))).to eq(ds_eq(constant(false), constant(true))) }
end
end