summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMia Henderson <mimato@users.noreply.github.com>2020-01-27 15:24:38 -0500
committerMia Henderson <mimato@users.noreply.github.com>2020-01-27 15:24:38 -0500
commitc22e314ce8e9ad1b6b91125272e4e33c5ce2e35c (patch)
tree29d1721c860b1fbc1d2c71f7c5f8f6d6ac072b7a
parent8b78fe904689dd6539e308fb87bffe103fb852f1 (diff)
downloadchef-c22e314ce8e9ad1b6b91125272e4e33c5ce2e35c.tar.gz
Fix fuzzy node search to work when the search type is a string rather than a symbol
Signed-off-by: Mia Henderson <mia@pagerduty.com>
-rw-r--r--lib/chef/search/query.rb2
-rw-r--r--spec/unit/search/query_spec.rb9
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/chef/search/query.rb b/lib/chef/search/query.rb
index 46dedd33f8..4eaff0471c 100644
--- a/lib/chef/search/query.rb
+++ b/lib/chef/search/query.rb
@@ -63,7 +63,7 @@ class Chef
args_h = hashify_args(*args)
if args_h[:fuzz]
- if type == :node
+ if [:node, 'node'].include?(type)
query = fuzzify_node_query(query)
end
# FIXME: can i haz proper ruby-2.x named parameters someday plz?
diff --git a/spec/unit/search/query_spec.rb b/spec/unit/search/query_spec.rb
index 9b0087d7ed..ecac444f5e 100644
--- a/spec/unit/search/query_spec.rb
+++ b/spec/unit/search/query_spec.rb
@@ -233,13 +233,20 @@ describe Chef::Search::Query do
end
end
- it "fuzzifies node searches when fuzz is set" do
+ it "fuzzifies node searches when fuzz is set and type is a symbol" do
expect(rest).to receive(:get).with(
"search/node?q=tags:*free.messi*%20OR%20roles:*free.messi*%20OR%20fqdn:*free.messi*%20OR%20addresses:*free.messi*%20OR%20policy_name:*free.messi*%20OR%20policy_group:*free.messi*&start=0&rows=#{default_rows}"
).and_return(response)
query.search(:node, "free.messi", fuzz: true)
end
+ it "fuzzifies node searches when fuzz is set and type is a string" do
+ expect(rest).to receive(:get).with(
+ "search/node?q=tags:*free.messi*%20OR%20roles:*free.messi*%20OR%20fqdn:*free.messi*%20OR%20addresses:*free.messi*%20OR%20policy_name:*free.messi*%20OR%20policy_group:*free.messi*&start=0&rows=#{default_rows}"
+ ).and_return(response)
+ query.search('node', "free.messi", fuzz: true)
+ end
+
it "does not fuzzify node searches when fuzz is not set" do
expect(rest).to receive(:get).with(
"search/node?q=free.messi&start=0&rows=#{default_rows}"