diff --git a/lib/open_food_network/feature_toggle.rb b/lib/open_food_network/feature_toggle.rb index b3c5b5a2ae..50fb761b6e 100644 --- a/lib/open_food_network/feature_toggle.rb +++ b/lib/open_food_network/feature_toggle.rb @@ -40,8 +40,12 @@ module OpenFoodNetwork end def enabled?(feature_name, user) - feature = features.fetch(feature_name, DefaultFeature.new(feature_name)) - feature.enabled?(user) + if Flipper[feature_name].exist? + Flipper.enabled?(feature_name, user) + else + feature = features.fetch(feature_name, DefaultFeature.new(feature_name)) + feature.enabled?(user) + end end private diff --git a/spec/lib/open_food_network/feature_toggle_spec.rb b/spec/lib/open_food_network/feature_toggle_spec.rb index 3e5e3cfa4f..60f23933cf 100644 --- a/spec/lib/open_food_network/feature_toggle_spec.rb +++ b/spec/lib/open_food_network/feature_toggle_spec.rb @@ -24,6 +24,17 @@ module OpenFoodNetwork expect(FeatureToggle.enabled?(:foo)).to be false end + it "uses Flipper configuration" do + Flipper.enable(:foo) + expect(FeatureToggle.enabled?(:foo)).to be true + end + + it "uses Flipper over static config" do + Flipper.enable(:foo, false) + stub_foo("true") + expect(FeatureToggle.enabled?(:foo)).to be false + end + def stub_foo(value) allow(ENV).to receive(:fetch).with("OFN_FEATURE_FOO", nil).and_return(value) end