Commit 7e93b0e74ddd4acf06cf243954abf307e05bb932
1 parent
bdd87da0
Exists in
master
and in
2 other branches
Moved helpers to separate file [skip ci]
Showing
2 changed files
with
86 additions
and
85 deletions
Show diff stats
... | ... | @@ -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" | ... | ... |