Commit a4d01916f1f304641fdbcf0670633be536f267e5

Authored by Andrew Kane
1 parent 431d633d

Improved test output [skip ci]

Showing 2 changed files with 9 additions and 2 deletions   Show diff stats
lib/searchkick/query.rb
@@ -864,10 +864,11 @@ module Searchkick @@ -864,10 +864,11 @@ module Searchkick
864 } 864 }
865 end 865 end
866 866
867 - # TODO id transformation for arrays  
868 def set_order(payload) 867 def set_order(payload)
869 order = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc} 868 order = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc}
870 id_field = :_id 869 id_field = :_id
  870 + # TODO no longer map id to _id in Searchkick 5
  871 + # since sorting on _id is deprecated in Elasticsearch
871 payload[:sort] = order.is_a?(Array) ? order : Hash[order.map { |k, v| [k.to_s == "id" ? id_field : k, v] }] 872 payload[:sort] = order.is_a?(Array) ? order : Hash[order.map { |k, v| [k.to_s == "id" ? id_field : k, v] }]
872 end 873 end
873 874
test/order_test.rb
@@ -11,13 +11,18 @@ class OrderTest < Minitest::Test @@ -11,13 +11,18 @@ class OrderTest < Minitest::Test
11 assert_order "product", ["Product A", "Product B", "Product C", "Product D"], order: "name" 11 assert_order "product", ["Product A", "Product B", "Product C", "Product D"], order: "name"
12 end 12 end
13 13
  14 + # TODO no longer map id to _id in Searchkick 5
  15 + # since sorting on _id is deprecated in Elasticsearch
14 def test_id 16 def test_id
15 skip if cequel? 17 skip if cequel?
16 18
17 store_names ["Product A", "Product B"] 19 store_names ["Product A", "Product B"]
18 product_a = Product.where(name: "Product A").first 20 product_a = Product.where(name: "Product A").first
19 product_b = Product.where(name: "Product B").first 21 product_b = Product.where(name: "Product B").first
20 - assert_order "product", [product_a, product_b].sort_by { |r| r.id.to_s }.map(&:name), order: {id: :asc} 22 + _, stderr = capture_io do
  23 + assert_order "product", [product_a, product_b].sort_by { |r| r.id.to_s }.map(&:name), order: {id: :asc}
  24 + end
  25 + assert_match "Loading the fielddata on the _id field is deprecated", stderr
21 end 26 end
22 27
23 def test_multiple 28 def test_multiple
@@ -30,6 +35,7 @@ class OrderTest < Minitest::Test @@ -30,6 +35,7 @@ class OrderTest < Minitest::Test
30 end 35 end
31 36
32 def test_unmapped_type 37 def test_unmapped_type
  38 + Product.search_index.refresh
33 assert_order "product", [], order: {not_mapped: {unmapped_type: "long"}} 39 assert_order "product", [], order: {not_mapped: {unmapped_type: "long"}}
34 end 40 end
35 41