From a8040660f652856c1bb77a7b8cd2c00e6365e526 Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Sat, 21 Mar 2015 10:01:41 -0700 Subject: [PATCH] When providing default or backwards-compatible options for a field if/unless condition, don't overwrite the boolean false --- lib/blacklight/configuration/facet_field.rb | 2 +- lib/blacklight/configuration/search_field.rb | 2 +- spec/lib/blacklight/configuration_spec.rb | 33 ++++++++++++++++++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/blacklight/configuration/facet_field.rb b/lib/blacklight/configuration/facet_field.rb index 0aca11a932..96cd08c8da 100644 --- a/lib/blacklight/configuration/facet_field.rb +++ b/lib/blacklight/configuration/facet_field.rb @@ -5,7 +5,7 @@ def normalize! blacklight_config = nil self.collapse = true if self.collapse.nil? self.show = true if self.show.nil? - self.if ||= self.show + self.if = self.show if self.if.nil? super diff --git a/lib/blacklight/configuration/search_field.rb b/lib/blacklight/configuration/search_field.rb index e5be72c6ec..a0f9b78b2b 100644 --- a/lib/blacklight/configuration/search_field.rb +++ b/lib/blacklight/configuration/search_field.rb @@ -1,7 +1,7 @@ module Blacklight class Configuration::SearchField < Blacklight::Configuration::Field def normalize! blacklight_config = nil - self.if ||= self.include_in_simple_select + self.if = self.include_in_simple_select if self.if.nil? super self.qt ||= blacklight_config.default_solr_params[:qt] if blacklight_config && blacklight_config.default_solr_params diff --git a/spec/lib/blacklight/configuration_spec.rb b/spec/lib/blacklight/configuration_spec.rb index 4a034bc003..050cba399f 100644 --- a/spec/lib/blacklight/configuration_spec.rb +++ b/spec/lib/blacklight/configuration_spec.rb @@ -234,6 +234,21 @@ expect(@config.index_fields.keys).to include "subtitle_display", "subtitle_vern_display", "title_display", "title_vern_display" end + describe "if/unless conditions with legacy show parameter" do + it "should be hidden if the if condition is false" do + expect(@config.add_facet_field("hidden", if: false).if).to eq false + expect(@config.add_facet_field("hidden_with_legacy", if: false, show: true).if).to eq false + end + + it "should be true if the if condition is true" do + expect(@config.add_facet_field("hidden", if: true).if).to eq true + expect(@config.add_facet_field("hidden_with_legacy", if: true, show: false).if).to eq true + end + + it "should be true if the if condition is missing" do + expect(@config.add_facet_field("hidden", show: true).if).to eq true + end + end end describe "add_index_field" do @@ -386,8 +401,22 @@ expect(@config.search_fields["author_name"].label).to eq "Author Name" end - - + + describe "if/unless conditions with legacy include_in_simple_search" do + it "should be hidden if the if condition is false" do + expect(@config.add_search_field("hidden", if: false).if).to eq false + expect(@config.add_search_field("hidden_with_legacy", if: false, include_in_simple_search: true).if).to eq false + end + + it "should be true if the if condition is true" do + expect(@config.add_search_field("hidden", if: true).if).to eq true + expect(@config.add_search_field("hidden_with_legacy", if: true, include_in_simple_search: false).if).to eq true + end + + it "should be true if the if condition is missing" do + expect(@config.add_search_field("hidden", include_in_simple_search: true).if).to eq true + end + end end describe "add_sort_field" do