Handle OrderBalance comparison operators

These operators get used on the object returned by order_balance in a few places, and were not working correctly.
This commit is contained in:
Matt-Yorkley
2021-03-31 13:20:34 +01:00
parent a02c505e62
commit bb0cf65ecc
2 changed files with 39 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
# frozen_string_literal: true
class OrderBalance
delegate :zero?, :abs, :to_s, :to_f, :to_d, to: :amount
delegate :zero?, :abs, :to_s, :to_f, :to_d, :<, :>, to: :amount
def initialize(order)
@order = order

View File

@@ -392,4 +392,42 @@ describe OrderBalance do
end
end
end
context "with comparison operators" do
context 'when the customer_balance feature is disabled' do
before do
allow(OpenFoodNetwork::FeatureToggle)
.to receive(:enabled?).with(:customer_balance, user) { false }
end
before do
allow(order).to receive(:old_outstanding_balance) { 10 }
end
it 'correctly returns true or false' do
expect(order_balance > 5).to eq true
expect(order_balance > 20).to eq false
expect(order_balance < 15).to eq true
expect(order_balance < 5).to eq false
end
end
context 'when the customer_balance feature is enabled' do
before do
allow(OpenFoodNetwork::FeatureToggle)
.to receive(:enabled?).with(:customer_balance, user) { true }
end
before do
allow(order).to receive(:new_outstanding_balance) { 10 }
end
it 'correctly returns true or false' do
expect(order_balance > 5).to eq true
expect(order_balance > 20).to eq false
expect(order_balance < 15).to eq true
expect(order_balance < 5).to eq false
end
end
end
end