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 @@
  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 65 Speaker.reindex
66 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"
... ...