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