mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user