spec/settings_spec.rb in figleaf-0.0.4 vs spec/settings_spec.rb in figleaf-0.0.5

- old
+ new

@@ -54,9 +54,53 @@ described_class.another_fictional_feature_mode.should eq(:admin) described_class.enable_fictional_activity_feed.should be_true end end + describe "predicate methods for boolean values" do + it "should define predicate methods for true value" do + described_class.configure_with_auto_define do |s| + s.some_boolean = true + end + + described_class.some_boolean.should be_true + described_class.some_boolean?.should be_true + end + + it "should define predicate methods for false value" do + described_class.configure_with_auto_define do |s| + s.another_boolean = false + end + + described_class.another_boolean.should be_false + described_class.another_boolean?.should be_false + end + + it "should evaluate presence predicate methods for string value" do + described_class.configure_with_auto_define do |s| + s.not_a_boolean = "Hello, world!" + end + + described_class.not_a_boolean?.should be_true + end + + it "should return false for empty string" do + described_class.configure_with_auto_define do |s| + s.empty_string = "" + end + + described_class.empty_string?.should be_false + end + + it "return true for lists" do + described_class.configure_with_auto_define do |s| + s.not_a_boolean = %w(1 2 3) + end + + described_class.not_a_boolean?.should be_true + end + end + describe "self.configure" do before(:each) do described_class.auto_define = true described_class.fictional_feature_enabled = :on end