Commit 3816fd744f3e198b980c0a747ed641f67850af77
1 parent
476ea1ba
Exists in
master
and in
5 other branches
Moved tests
Showing
4 changed files
with
83 additions
and
83 deletions
Show diff stats
test/index_test.rb
@@ -55,26 +55,6 @@ class IndexTest < Minitest::Test | @@ -55,26 +55,6 @@ class IndexTest < Minitest::Test | ||
55 | assert_equal "text", mapping["properties"]["name"]["type"] | 55 | assert_equal "text", mapping["properties"]["name"]["type"] |
56 | end | 56 | end |
57 | 57 | ||
58 | - def test_body | ||
59 | - store_names ["Dollar Tree"], Store | ||
60 | - assert_equal ["Dollar Tree"], Store.search(body: {query: {match: {name: "dollar"}}}, load: false).map(&:name) | ||
61 | - end | ||
62 | - | ||
63 | - def test_body_incompatible_options | ||
64 | - assert_raises(ArgumentError) do | ||
65 | - Store.search(body: {query: {match: {name: "dollar"}}}, where: {id: 1}) | ||
66 | - end | ||
67 | - end | ||
68 | - | ||
69 | - def test_block | ||
70 | - store_names ["Dollar Tree"] | ||
71 | - products = | ||
72 | - Product.search "boom" do |body| | ||
73 | - body[:query] = {match_all: {}} | ||
74 | - end | ||
75 | - assert_equal ["Dollar Tree"], products.map(&:name) | ||
76 | - end | ||
77 | - | ||
78 | def test_tokens | 58 | def test_tokens |
79 | assert_equal ["dollar", "dollartre", "tree"], Product.searchkick_index.tokens("Dollar Tree", analyzer: "searchkick_index") | 59 | assert_equal ["dollar", "dollartre", "tree"], Product.searchkick_index.tokens("Dollar Tree", analyzer: "searchkick_index") |
80 | end | 60 | end |
@@ -83,25 +63,6 @@ class IndexTest < Minitest::Test | @@ -83,25 +63,6 @@ class IndexTest < Minitest::Test | ||
83 | assert_equal ["dollar", "tree"], Product.searchkick_index.tokens("Dollar Tree", analyzer: "searchkick_search2") | 63 | assert_equal ["dollar", "tree"], Product.searchkick_index.tokens("Dollar Tree", analyzer: "searchkick_search2") |
84 | end | 64 | end |
85 | 65 | ||
86 | - def test_record_not_found | ||
87 | - store_names ["Product A", "Product B"] | ||
88 | - Product.where(name: "Product A").delete_all | ||
89 | - assert_output nil, /\[searchkick\] WARNING: Records in search index do not exist in database/ do | ||
90 | - assert_search "product", ["Product B"] | ||
91 | - end | ||
92 | - ensure | ||
93 | - Product.reindex | ||
94 | - end | ||
95 | - | ||
96 | - def test_bad_mapping | ||
97 | - Product.searchkick_index.delete | ||
98 | - store_names ["Product A"] | ||
99 | - error = assert_raises(Searchkick::InvalidQueryError) { Product.search "test" } | ||
100 | - assert_equal "Bad mapping - run Product.reindex", error.message | ||
101 | - ensure | ||
102 | - Product.reindex | ||
103 | - end | ||
104 | - | ||
105 | def test_remove_blank_id | 66 | def test_remove_blank_id |
106 | store_names ["Product A"] | 67 | store_names ["Product A"] |
107 | Product.searchkick_index.remove(Product.new) | 68 | Product.searchkick_index.remove(Product.new) |
@@ -110,31 +71,6 @@ class IndexTest < Minitest::Test | @@ -110,31 +71,6 @@ class IndexTest < Minitest::Test | ||
110 | Product.reindex | 71 | Product.reindex |
111 | end | 72 | end |
112 | 73 | ||
113 | - def test_missing_index | ||
114 | - assert_raises(Searchkick::MissingIndexError) { Product.search("test", index_name: "not_found") } | ||
115 | - end | ||
116 | - | ||
117 | - def test_unsupported_version | ||
118 | - raises_exception = ->(_) { raise Elasticsearch::Transport::Transport::Error, "[500] No query registered for [multi_match]" } | ||
119 | - Searchkick.client.stub :search, raises_exception do | ||
120 | - assert_raises(Searchkick::UnsupportedVersionError) { Product.search("test") } | ||
121 | - end | ||
122 | - end | ||
123 | - | ||
124 | - def test_invalid_body | ||
125 | - assert_raises(Searchkick::InvalidQueryError) { Product.search(body: {boom: true}) } | ||
126 | - end | ||
127 | - | ||
128 | - def test_transaction | ||
129 | - skip unless activerecord? | ||
130 | - | ||
131 | - Product.transaction do | ||
132 | - store_names ["Product A"] | ||
133 | - raise ActiveRecord::Rollback | ||
134 | - end | ||
135 | - assert_search "*", [] | ||
136 | - end | ||
137 | - | ||
138 | def test_filterable | 74 | def test_filterable |
139 | # skip for 5.0 since it throws | 75 | # skip for 5.0 since it throws |
140 | # Cannot search on field [alt_description] since it is not indexed. | 76 | # Cannot search on field [alt_description] since it is not indexed. |
test/model_test.rb
@@ -1,19 +0,0 @@ | @@ -1,19 +0,0 @@ | ||
1 | -require_relative "test_helper" | ||
2 | - | ||
3 | -class ModelTest < Minitest::Test | ||
4 | - def test_search_relation | ||
5 | - _, stderr = capture_io { Product.search("*") } | ||
6 | - assert_equal "", stderr | ||
7 | - _, stderr = capture_io { Product.all.search("*") } | ||
8 | - assert_match "WARNING", stderr | ||
9 | - end | ||
10 | - | ||
11 | - def test_search_relation_default_scope | ||
12 | - Band.reindex | ||
13 | - | ||
14 | - _, stderr = capture_io { Band.search("*") } | ||
15 | - assert_equal "", stderr | ||
16 | - _, stderr = capture_io { Band.all.search("*") } | ||
17 | - assert_match "WARNING", stderr | ||
18 | - end | ||
19 | -end |
test/reindex_test.rb
@@ -194,4 +194,14 @@ class ReindexTest < Minitest::Test | @@ -194,4 +194,14 @@ class ReindexTest < Minitest::Test | ||
194 | assert_search "product", ["Product A", "Product C"], load: false | 194 | assert_search "product", ["Product A", "Product C"], load: false |
195 | assert_equal 0, reindex_queue.length | 195 | assert_equal 0, reindex_queue.length |
196 | end | 196 | end |
197 | + | ||
198 | + def test_transaction | ||
199 | + skip unless activerecord? | ||
200 | + | ||
201 | + Product.transaction do | ||
202 | + store_names ["Product A"] | ||
203 | + raise ActiveRecord::Rollback | ||
204 | + end | ||
205 | + assert_search "*", [] | ||
206 | + end | ||
197 | end | 207 | end |
@@ -0,0 +1,73 @@ | @@ -0,0 +1,73 @@ | ||
1 | +require_relative "test_helper" | ||
2 | + | ||
3 | +class SearchTest < Minitest::Test | ||
4 | + def test_search_relation | ||
5 | + _, stderr = capture_io { Product.search("*") } | ||
6 | + assert_equal "", stderr | ||
7 | + _, stderr = capture_io { Product.all.search("*") } | ||
8 | + assert_match "WARNING", stderr | ||
9 | + end | ||
10 | + | ||
11 | + def test_search_relation_default_scope | ||
12 | + Band.reindex | ||
13 | + | ||
14 | + _, stderr = capture_io { Band.search("*") } | ||
15 | + assert_equal "", stderr | ||
16 | + _, stderr = capture_io { Band.all.search("*") } | ||
17 | + assert_match "WARNING", stderr | ||
18 | + end | ||
19 | + | ||
20 | + def test_body | ||
21 | + store_names ["Dollar Tree"], Store | ||
22 | + assert_equal ["Dollar Tree"], Store.search(body: {query: {match: {name: "dollar"}}}, load: false).map(&:name) | ||
23 | + end | ||
24 | + | ||
25 | + def test_body_incompatible_options | ||
26 | + assert_raises(ArgumentError) do | ||
27 | + Store.search(body: {query: {match: {name: "dollar"}}}, where: {id: 1}) | ||
28 | + end | ||
29 | + end | ||
30 | + | ||
31 | + def test_block | ||
32 | + store_names ["Dollar Tree"] | ||
33 | + products = | ||
34 | + Product.search "boom" do |body| | ||
35 | + body[:query] = {match_all: {}} | ||
36 | + end | ||
37 | + assert_equal ["Dollar Tree"], products.map(&:name) | ||
38 | + end | ||
39 | + | ||
40 | + def test_record_not_found | ||
41 | + store_names ["Product A", "Product B"] | ||
42 | + Product.where(name: "Product A").delete_all | ||
43 | + assert_output nil, /\[searchkick\] WARNING: Records in search index do not exist in database/ do | ||
44 | + assert_search "product", ["Product B"] | ||
45 | + end | ||
46 | + ensure | ||
47 | + Product.reindex | ||
48 | + end | ||
49 | + | ||
50 | + def test_bad_mapping | ||
51 | + Product.searchkick_index.delete | ||
52 | + store_names ["Product A"] | ||
53 | + error = assert_raises(Searchkick::InvalidQueryError) { Product.search "test" } | ||
54 | + assert_equal "Bad mapping - run Product.reindex", error.message | ||
55 | + ensure | ||
56 | + Product.reindex | ||
57 | + end | ||
58 | + | ||
59 | + def test_missing_index | ||
60 | + assert_raises(Searchkick::MissingIndexError) { Product.search("test", index_name: "not_found") } | ||
61 | + end | ||
62 | + | ||
63 | + def test_unsupported_version | ||
64 | + raises_exception = ->(_) { raise Elasticsearch::Transport::Transport::Error, "[500] No query registered for [multi_match]" } | ||
65 | + Searchkick.client.stub :search, raises_exception do | ||
66 | + assert_raises(Searchkick::UnsupportedVersionError) { Product.search("test") } | ||
67 | + end | ||
68 | + end | ||
69 | + | ||
70 | + def test_invalid_body | ||
71 | + assert_raises(Searchkick::InvalidQueryError) { Product.search(body: {boom: true}) } | ||
72 | + end | ||
73 | +end |