From e3d1f5256bbd21647976b2a96cce752da10d8f8a Mon Sep 17 00:00:00 2001 From: Yih Yang Date: Thu, 29 Oct 2020 22:06:35 +0800 Subject: [PATCH 1/3] added product sorting --- app/services/exchange_products_renderer.rb | 2 +- spec/services/exchange_products_renderer_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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 } From f7ee08855a99c100fd581a5deff5d4d9890c3f77 Mon Sep 17 00:00:00 2001 From: Yih Yang Date: Thu, 29 Oct 2020 22:07:11 +0800 Subject: [PATCH 2/3] updated implementation --- spec/services/exchange_products_renderer_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/services/exchange_products_renderer_spec.rb b/spec/services/exchange_products_renderer_spec.rb index 21e374d4ac..15e904b6b5 100644 --- a/spec/services/exchange_products_renderer_spec.rb +++ b/spec/services/exchange_products_renderer_spec.rb @@ -16,9 +16,9 @@ describe ExchangeProductsRenderer do end it "loads products in order" do - sorted_products_names = products.pluck(:name).sort + sorted_products_names = products.map(&:name).sort - expect(products.pluck(:name)).to eq(sorted_products_names) + expect(products.map(&:name)).to eq(sorted_products_names) end end @@ -34,9 +34,9 @@ describe ExchangeProductsRenderer do end it "loads products in order" do - sorted_products_names = products.pluck(:name).sort + sorted_products_names = products.map(&:name).sort - expect(products.pluck(:name)).to eq(sorted_products_names) + expect(products.map(&:name)).to eq(sorted_products_names) end context "showing products from coordinator inventory only" do From b477ed4a0a6d2cf9c3c1390018bc71a44a0cd7d0 Mon Sep 17 00:00:00 2001 From: Yih Yang Date: Thu, 29 Oct 2020 23:37:56 +0800 Subject: [PATCH 3/3] added products variable --- spec/services/exchange_products_renderer_spec.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/services/exchange_products_renderer_spec.rb b/spec/services/exchange_products_renderer_spec.rb index 15e904b6b5..42684c8aae 100644 --- a/spec/services/exchange_products_renderer_spec.rb +++ b/spec/services/exchange_products_renderer_spec.rb @@ -16,6 +16,7 @@ describe ExchangeProductsRenderer do end it "loads products in order" do + products = renderer.exchange_products(true, exchange.sender) sorted_products_names = products.map(&:name).sort expect(products.map(&:name)).to eq(sorted_products_names) @@ -34,6 +35,7 @@ describe ExchangeProductsRenderer do end it "loads products in order" do + products = renderer.exchange_products(false, exchange.receiver) sorted_products_names = products.map(&:name).sort expect(products.map(&:name)).to eq(sorted_products_names)