From 8201f4ba8cc810fcc5fba364c5e17ac2481a941e 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 | 39 +++++++++++++++++--- 3 files changed, 35 insertions(+), 8 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 4e125233c7..39566c7700 100644 --- a/spec/lib/blacklight/configuration_spec.rb +++ b/spec/lib/blacklight/configuration_spec.rb @@ -213,11 +213,25 @@ "another_field_facet" => {}, "a_facet_field" => {}, }) - expect { |b| @config.add_index_field "*_facet", &b }.to yield_control.twice - - expect(@config.index_fields.keys).to eq ["some_field_facet", "another_field_facet"] + expect { |b| @config.add_facet_field "*_facet", &b }.to yield_control.twice + expect(@config.facet_fields.keys).to eq ["some_field_facet", "another_field_facet"] 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 @@ -261,7 +275,6 @@ expect(@config.index_fields.keys).to eq ["some_field_display", "another_field_display"] end - end describe "add_show_field" do @@ -370,8 +383,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