diff --git a/app/controllers/spree/users_controller.rb b/app/controllers/spree/users_controller.rb index 60b7b33e26..4feff9bf7a 100644 --- a/app/controllers/spree/users_controller.rb +++ b/app/controllers/spree/users_controller.rb @@ -79,7 +79,7 @@ module Spree private def orders_collection - CompleteOrdersWithBalance.new(@user).query + CompleteOrdersWithBalanceQuery.new(@user).call end def load_object diff --git a/app/queries/complete_orders_with_balance.rb b/app/queries/complete_orders_with_balance_query.rb similarity index 88% rename from app/queries/complete_orders_with_balance.rb rename to app/queries/complete_orders_with_balance_query.rb index 57223e5c6e..665e2d2838 100644 --- a/app/queries/complete_orders_with_balance.rb +++ b/app/queries/complete_orders_with_balance_query.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true # Fetches complete orders of the specified user including their balance as a computed column -class CompleteOrdersWithBalance +class CompleteOrdersWithBalanceQuery def initialize(user) @user = user end - def query + def call OutstandingBalance.new(sorted_finalized_orders).query end diff --git a/app/queries/outstanding_balance.rb b/app/queries/outstanding_balance.rb index 637451b25c..b157739b29 100644 --- a/app/queries/outstanding_balance.rb +++ b/app/queries/outstanding_balance.rb @@ -7,7 +7,7 @@ # Alternatively, you can get the SQL by calling #statement, which is suitable for more complex # cases. # -# See CompleteOrdersWithBalance or CustomersWithBalance as examples. +# See CompleteOrdersWithBalanceQuery or CustomersWithBalance as examples. # # Note this query object and `app/models/concerns/balance.rb` should implement the same behavior # until we find a better way. If you change one, please, change the other too. diff --git a/app/serializers/api/order_serializer.rb b/app/serializers/api/order_serializer.rb index 067d23b76d..900d2aeaa0 100644 --- a/app/serializers/api/order_serializer.rb +++ b/app/serializers/api/order_serializer.rb @@ -9,7 +9,7 @@ module Api has_many :payments, serializer: Api::PaymentSerializer - # This method relies on `balance_value` as a computed DB column. See `CompleteOrdersWithBalance` + # This method relies on `balance_value` as a computed DB column. See `CompleteOrdersWithBalanceQuery` # for reference. def outstanding_balance -object.balance_value diff --git a/spec/queries/complete_orders_with_balance_spec.rb b/spec/queries/complete_orders_with_balance_query_spec.rb similarity index 73% rename from spec/queries/complete_orders_with_balance_spec.rb rename to spec/queries/complete_orders_with_balance_query_spec.rb index a587153766..f0988bc532 100644 --- a/spec/queries/complete_orders_with_balance_spec.rb +++ b/spec/queries/complete_orders_with_balance_query_spec.rb @@ -2,10 +2,10 @@ require 'spec_helper' -describe CompleteOrdersWithBalance do - let(:complete_orders_with_balance) { described_class.new(user) } +describe CompleteOrdersWithBalanceQuery do + let(:result) { described_class.new(user).call } - describe '#query' do + describe '#call' do let(:user) { order.user } let(:outstanding_balance) { instance_double(OutstandingBalance) } @@ -28,17 +28,16 @@ describe CompleteOrdersWithBalance do allow(OutstandingBalance).to receive(:new).and_return(outstanding_balance) expect(outstanding_balance).to receive(:query) - complete_orders_with_balance.query + result end it 'returns complete orders including their balance' do - order = complete_orders_with_balance.query.first + order = result.first expect(order[:balance_value]).to eq(-1.0) end it 'sorts them by their completed_at with the most recent first' do - orders = complete_orders_with_balance.query - expect(orders.pluck(:id)).to eq([other_order.id, order.id]) + expect(result.pluck(:id)).to eq([other_order.id, order.id]) end end @@ -49,12 +48,11 @@ describe CompleteOrdersWithBalance do allow(OutstandingBalance).to receive(:new).and_return(outstanding_balance) expect(outstanding_balance).to receive(:query) - complete_orders_with_balance.query + result end it 'returns an empty array' do - order = complete_orders_with_balance.query - expect(order).to be_empty + expect(result).to be_empty end end end