fix: binary operator computes false by default
This commit is contained in:
parent
27ed32bff0
commit
2d26ba3507
2 changed files with 4 additions and 1 deletions
|
@ -33,7 +33,7 @@ class Logic::BinaryOperator < Logic::Term
|
|||
l = @left.compute(champs)
|
||||
r = @right.compute(champs)
|
||||
|
||||
l.send(operation, r)
|
||||
l&.send(operation, r) || false
|
||||
end
|
||||
|
||||
def to_s = "(#{@left} #{operation} #{@right})"
|
||||
|
|
|
@ -22,9 +22,12 @@ end
|
|||
|
||||
describe Logic::GreaterThan do
|
||||
include Logic
|
||||
let(:champ) { create(:champ_integer_number, value: nil) }
|
||||
|
||||
it 'computes' do
|
||||
expect(greater_than(constant(1), constant(1)).compute).to be(false)
|
||||
expect(greater_than(constant(2), constant(1)).compute).to be(true)
|
||||
expect(greater_than(champ_value(champ.stable_id), constant(2)).compute([champ])).to be(false)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue