From bb60e6b8e0aead257512aa87318c024e7e813fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 25 Jan 2016 14:07:07 +0100 Subject: [PATCH] adds #enabled? to Setting --- app/models/setting.rb | 4 ++++ spec/models/setting_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/app/models/setting.rb b/app/models/setting.rb index 2d7d8d43c..40659ed74 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -7,6 +7,10 @@ class Setting < ActiveRecord::Base key.start_with?('feature.') end + def enabled? + feature_flag? && value.present? + end + class << self def [](key) where(key: key).pluck(:value).first.presence diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 99234de95..c5e8e224a 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -28,4 +28,30 @@ describe Setting do expect(setting.feature_flag?).to eq false end end + + describe "#enabled?" do + it "should be true if feature_flag and value present" do + setting = Setting.create(key: 'feature.whatever', value: 1) + expect(setting.enabled?).to eq true + + setting.value = "true" + expect(setting.enabled?).to eq true + + setting.value = "whatever" + expect(setting.enabled?).to eq true + end + + it "should be false if feature_flag and value blank" do + setting = Setting.create(key: 'feature.whatever') + expect(setting.enabled?).to eq false + + setting.value = "" + expect(setting.enabled?).to eq false + end + + it "should be false if not feature_flag" do + setting = Setting.create(key: 'whatever', value: "whatever") + expect(setting.enabled?).to eq false + end + end end