diff --git a/app/services/exchange_products_renderer.rb b/app/services/exchange_products_renderer.rb index d1a0b0a225..19b3133641 100644 --- a/app/services/exchange_products_renderer.rb +++ b/app/services/exchange_products_renderer.rb @@ -31,7 +31,7 @@ class ExchangeProductsRenderer end def supplied_products(enterprises_query_matcher) - products_relation = Spree::Product.where(supplier_id: enterprises_query_matcher) + products_relation = Spree::Product.where(supplier_id: enterprises_query_matcher).order(:name) filter_visible(products_relation) end diff --git a/spec/services/exchange_products_renderer_spec.rb b/spec/services/exchange_products_renderer_spec.rb index b2eba1c6c3..21e374d4ac 100644 --- a/spec/services/exchange_products_renderer_spec.rb +++ b/spec/services/exchange_products_renderer_spec.rb @@ -14,6 +14,12 @@ describe ExchangeProductsRenderer do expect(products.first.supplier.name).to eq exchange.variants.first.product.supplier.name end + + it "loads products in order" do + sorted_products_names = products.pluck(:name).sort + + expect(products.pluck(:name)).to eq(sorted_products_names) + end end describe "for an outgoing exchange" do @@ -27,6 +33,12 @@ describe ExchangeProductsRenderer do expect(suppliers).to include products.second.supplier.name end + it "loads products in order" do + sorted_products_names = products.pluck(:name).sort + + expect(products.pluck(:name)).to eq(sorted_products_names) + end + context "showing products from coordinator inventory only" do before { order_cycle.update prefers_product_selection_from_coordinator_inventory_only: true }