From cad8d8316de41d325bdbb77d54a0531f7cc700cf Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Fri, 3 Dec 2021 10:09:23 +0100 Subject: [PATCH] Improve variant order when searching --- .../scope_variants_for_search.rb | 3 ++- .../scope_variants_to_search_spec.rb | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/open_food_network/scope_variants_for_search.rb b/lib/open_food_network/scope_variants_for_search.rb index 71089540f0..abc0502750 100644 --- a/lib/open_food_network/scope_variants_for_search.rb +++ b/lib/open_food_network/scope_variants_for_search.rb @@ -36,7 +36,8 @@ module OpenFoodNetwork includes(option_values: :option_type). ransack(search_params.merge(m: 'or')). result. - order("display_name") + includes(:product). + order("products_spree_variants.name, display_name, display_as, products_spree_variants.variant_unit_name") end def distributor diff --git a/spec/lib/open_food_network/scope_variants_to_search_spec.rb b/spec/lib/open_food_network/scope_variants_to_search_spec.rb index d96f97d8d9..fdf394b012 100644 --- a/spec/lib/open_food_network/scope_variants_to_search_spec.rb +++ b/spec/lib/open_food_network/scope_variants_to_search_spec.rb @@ -65,15 +65,16 @@ describe OpenFoodNetwork::ScopeVariantsForSearch do context "searching products starting with the same 3 caracters" do let(:params) { { q: "pro" } } it "returns variants ordered by display_name" do - v1.display_name = "Product 1 - b" - v2.display_name = "Product 1 - a" - v3.display_name = "Product 1 - c" - v4.display_name = "Product 1" - v1.save! - v2.save! - v3.save! - v4.save! - expect(result.map(&:display_name)).to eq ["Product 1", "Product 1 - a", "Product 1 - b", "Product 1 - c"] + p1.name = "Product b" + p2.name = "Product a" + p3.name = "Product c" + p4.name = "Product 1" + p1.save! + p2.save! + p3.save! + p4.save! + expect(result.map(&:name)). + to eq(["Product 1", "Product a", "Product b", "Product c"]) end end end