Commit 7e93b0e74ddd4acf06cf243954abf307e05bb932

Authored by Andrew Kane
1 parent bdd87da0

Moved helpers to separate file [skip ci]

Showing 2 changed files with 86 additions and 85 deletions   Show diff stats
test/support/helpers.rb 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  1 +class Minitest::Test
  2 + def setup
  3 + Product.destroy_all
  4 + Store.destroy_all
  5 + Animal.destroy_all
  6 + Speaker.destroy_all
  7 + end
  8 +
  9 + protected
  10 +
  11 + def store(documents, klass = default_model, reindex: true)
  12 + if reindex
  13 + documents.shuffle.each do |document|
  14 + klass.create!(document)
  15 + end
  16 + klass.searchkick_index.refresh
  17 + else
  18 + Searchkick.callbacks(false) do
  19 + documents.shuffle.each do |document|
  20 + klass.create!(document)
  21 + end
  22 + end
  23 + end
  24 + end
  25 +
  26 + def store_names(names, klass = default_model, reindex: true)
  27 + store names.map { |name| {name: name} }, klass, reindex: reindex
  28 + end
  29 +
  30 + # no order
  31 + def assert_search(term, expected, options = {}, klass = default_model)
  32 + assert_equal expected.sort, klass.search(term, **options).map(&:name).sort
  33 + end
  34 +
  35 + def assert_order(term, expected, options = {}, klass = default_model)
  36 + assert_equal expected, klass.search(term, **options).map(&:name)
  37 + end
  38 +
  39 + def assert_equal_scores(term, options = {}, klass = default_model)
  40 + assert_equal 1, klass.search(term, **options).hits.map { |a| a["_score"] }.uniq.size
  41 + end
  42 +
  43 + def assert_first(term, expected, options = {}, klass = default_model)
  44 + assert_equal expected, klass.search(term, **options).map(&:name).first
  45 + end
  46 +
  47 + def assert_misspellings(term, expected, misspellings = {}, klass = default_model)
  48 + options = {
  49 + fields: [:name, :color],
  50 + misspellings: misspellings
  51 + }
  52 + assert_search(term, expected, options, klass)
  53 + end
  54 +
  55 + def assert_warns(message)
  56 + _, stderr = capture_io do
  57 + yield
  58 + end
  59 + assert_match "[searchkick] WARNING: #{message}", stderr
  60 + end
  61 +
  62 + def with_options(options, klass = default_model)
  63 + previous_options = klass.searchkick_options.dup
  64 + begin
  65 + klass.searchkick_options.merge!(options)
  66 + klass.reindex
  67 + yield
  68 + ensure
  69 + klass.searchkick_options.clear
  70 + klass.searchkick_options.merge!(previous_options)
  71 + end
  72 + end
  73 +
  74 + def activerecord?
  75 + defined?(ActiveRecord)
  76 + end
  77 +
  78 + def default_model
  79 + Product
  80 + end
  81 +
  82 + def ci?
  83 + ENV["CI"]
  84 + end
  85 +end
test/test_helper.rb
@@ -65,88 +65,4 @@ Animal.reindex @@ -65,88 +65,4 @@ Animal.reindex
65 Speaker.reindex 65 Speaker.reindex
66 Region.reindex 66 Region.reindex
67 67
68 -class Minitest::Test  
69 - def setup  
70 - Product.destroy_all  
71 - Store.destroy_all  
72 - Animal.destroy_all  
73 - Speaker.destroy_all  
74 - end  
75 -  
76 - protected  
77 -  
78 - def store(documents, klass = default_model, reindex: true)  
79 - if reindex  
80 - documents.shuffle.each do |document|  
81 - klass.create!(document)  
82 - end  
83 - klass.searchkick_index.refresh  
84 - else  
85 - Searchkick.callbacks(false) do  
86 - documents.shuffle.each do |document|  
87 - klass.create!(document)  
88 - end  
89 - end  
90 - end  
91 - end  
92 -  
93 - def store_names(names, klass = default_model, reindex: true)  
94 - store names.map { |name| {name: name} }, klass, reindex: reindex  
95 - end  
96 -  
97 - # no order  
98 - def assert_search(term, expected, options = {}, klass = default_model)  
99 - assert_equal expected.sort, klass.search(term, **options).map(&:name).sort  
100 - end  
101 -  
102 - def assert_order(term, expected, options = {}, klass = default_model)  
103 - assert_equal expected, klass.search(term, **options).map(&:name)  
104 - end  
105 -  
106 - def assert_equal_scores(term, options = {}, klass = default_model)  
107 - assert_equal 1, klass.search(term, **options).hits.map { |a| a["_score"] }.uniq.size  
108 - end  
109 -  
110 - def assert_first(term, expected, options = {}, klass = default_model)  
111 - assert_equal expected, klass.search(term, **options).map(&:name).first  
112 - end  
113 -  
114 - def assert_misspellings(term, expected, misspellings = {}, klass = default_model)  
115 - options = {  
116 - fields: [:name, :color],  
117 - misspellings: misspellings  
118 - }  
119 - assert_search(term, expected, options, klass)  
120 - end  
121 -  
122 - def assert_warns(message)  
123 - _, stderr = capture_io do  
124 - yield  
125 - end  
126 - assert_match "[searchkick] WARNING: #{message}", stderr  
127 - end  
128 -  
129 - def with_options(options, klass = default_model)  
130 - previous_options = klass.searchkick_options.dup  
131 - begin  
132 - klass.searchkick_options.merge!(options)  
133 - klass.reindex  
134 - yield  
135 - ensure  
136 - klass.searchkick_options.clear  
137 - klass.searchkick_options.merge!(previous_options)  
138 - end  
139 - end  
140 -  
141 - def activerecord?  
142 - defined?(ActiveRecord)  
143 - end  
144 -  
145 - def default_model  
146 - Product  
147 - end  
148 -  
149 - def ci?  
150 - ENV["CI"]  
151 - end  
152 -end 68 +require_relative "support/helpers"