Allow feature flag names to be a symbol

parent b60364c0
...@@ -39,7 +39,7 @@ class Feature ...@@ -39,7 +39,7 @@ class Feature
# Flipper creates on-memory features when asked for a not-yet-created one. # Flipper creates on-memory features when asked for a not-yet-created one.
# If we want to check if a feature has been actually set, we look for it # If we want to check if a feature has been actually set, we look for it
# on the persisted features list. # on the persisted features list.
persisted_names.include?(feature.name) persisted_names.include?(feature.name.to_s)
end end
def enabled?(key, thing = nil) def enabled?(key, thing = nil)
......
...@@ -39,7 +39,8 @@ describe Feature do ...@@ -39,7 +39,8 @@ describe Feature do
end end
describe '.persisted?' do describe '.persisted?' do
it 'returns true for a persisted feature' do context 'when the feature is persisted' do
it 'returns true when feature name is a string' do
Feature::FlipperFeature.create!(key: 'foo') Feature::FlipperFeature.create!(key: 'foo')
feature = double(:feature, name: 'foo') feature = double(:feature, name: 'foo')
...@@ -47,11 +48,28 @@ describe Feature do ...@@ -47,11 +48,28 @@ describe Feature do
expect(described_class.persisted?(feature)).to eq(true) expect(described_class.persisted?(feature)).to eq(true)
end end
it 'returns false for a feature that is not persisted' do it 'returns true when feature name is a symbol' do
Feature::FlipperFeature.create!(key: 'foo')
feature = double(:feature, name: :foo)
expect(described_class.persisted?(feature)).to eq(true)
end
end
context 'when the feature is not persisted' do
it 'returns false when feature name is a string' do
feature = double(:feature, name: 'foo') feature = double(:feature, name: 'foo')
expect(described_class.persisted?(feature)).to eq(false) expect(described_class.persisted?(feature)).to eq(false)
end end
it 'returns false when feature name is a symbol' do
feature = double(:feature, name: :bar)
expect(described_class.persisted?(feature)).to eq(false)
end
end
end end
describe '.all' do describe '.all' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment