test/test_helper.rb in searchkick-1.3.1 vs test/test_helper.rb in searchkick-1.3.2
- old
+ new
@@ -91,10 +91,16 @@
has_many :products
field :name
end
+ class Speaker
+ include Mongoid::Document
+
+ field :name
+ end
+
class Animal
include Mongoid::Document
field :name
end
@@ -135,10 +141,17 @@
field :id, type: Object
field :name, type: String
end
+ class Speaker
+ include NoBrainer::Document
+
+ field :id, type: Object
+ field :name, type: String
+ end
+
class Animal
include NoBrainer::Document
field :id, type: Object
field :name, type: String
@@ -160,11 +173,11 @@
ActiveRecord::Base.time_zone_aware_attributes = true
# migrations
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
- ActiveRecord::Base.raise_in_transactional_callbacks = true if ActiveRecord::Base.respond_to?(:raise_in_transactional_callbacks=)
+ ActiveRecord::Base.raise_in_transactional_callbacks = true if ActiveRecord::VERSION::STRING.start_with?("4.2.")
if defined?(Apartment)
class Rails
def self.env
ENV["RACK_ENV"]
@@ -219,10 +232,14 @@
ActiveRecord::Migration.create_table :stores do |t|
t.string :name
end
+ ActiveRecord::Migration.create_table :speakers do |t|
+ t.string :name
+ end
+
ActiveRecord::Migration.create_table :animals do |t|
t.string :name
t.string :type
end
@@ -231,10 +248,13 @@
class Store < ActiveRecord::Base
has_many :products
end
+ class Speaker < ActiveRecord::Base
+ end
+
class Animal < ActiveRecord::Base
end
class Dog < Animal
end
@@ -308,10 +328,24 @@
def search_routing
name
end
end
+class Speaker
+ searchkick \
+ conversions: ["conversions_a", "conversions_b"]
+
+ attr_accessor :conversions_a, :conversions_b
+
+ def search_data
+ serializable_hash.except("id").merge(
+ conversions_a: conversions_a,
+ conversions_b: conversions_b,
+ )
+ end
+end
+
class Animal
searchkick \
autocomplete: [:name],
suggest: [:name],
index_name: -> { "#{name.tableize}-#{Date.today.year}" }
@@ -323,16 +357,18 @@
Product.reindex # run twice for both index paths
Product.create!(name: "Set mapping")
Store.reindex
Animal.reindex
+Speaker.reindex
class Minitest::Test
def setup
Product.destroy_all
Store.destroy_all
Animal.destroy_all
+ Speaker.destroy_all
end
protected
def store(documents, klass = Product)
@@ -351,9 +387,13 @@
assert_equal expected.sort, klass.search(term, options).map(&:name).sort
end
def assert_order(term, expected, options = {}, klass = Product)
assert_equal expected, klass.search(term, options).map(&:name)
+ end
+
+ def assert_equal_scores(term, options = {}, klass = Product)
+ assert_equal 1, klass.search(term, options).hits.map { |a| a['_score'] }.uniq.size
end
def assert_first(term, expected, options = {}, klass = Product)
assert_equal expected, klass.search(term, options).map(&:name).first
end