spec/unit/rule/check_spec.rb in dry-logic-0.2.3 vs spec/unit/rule/check_spec.rb in dry-logic-0.3.0
- old
+ new
@@ -11,11 +11,11 @@
expect(rule.(num: 1)).to be_success
expect(rule.(num: 2)).to be_failure
expect(rule.(num: 1).to_ast).to eql(
[:input, [:compare, [
- :result, [1, [:check, [:compare, [:predicate, [:eql?, [1]]]]]]]]
+ :result, [1, [:check, [:compare, [:predicate, [:eql?, [[:left, 1], [:right, 1]]]]]]]]]
]
)
end
end
@@ -27,15 +27,16 @@
it 'applies predicate to args extracted from the input' do
expect(rule.(nums: { left: 1, right: 1 })).to be_success
expect(rule.(nums: { left: 1, right: 2 })).to be_failure
end
+ #check rules reverse the order of params to enable cases like `left.gt(right)` to work
it 'curries args properly' do
result = rule.(nums: { left: 1, right: 2 })
expect(result.to_ast).to eql([
:input, [:compare, [
- :result, [1, [:check, [:compare, [:predicate, [:eql?, [2]]]]]]]
+ :result, [1, [:check, [:compare, [:predicate, [:eql?, [[:left, 2], [:right, 1]]]]]]]]
]
])
end
end
end