spec/flipper/adapters/memoizable_spec.rb in flipper-0.26.2 vs spec/flipper/adapters/memoizable_spec.rb in flipper-0.27.0
- old
+ new
@@ -9,20 +9,10 @@
subject { described_class.new(adapter, cache) }
it_should_behave_like 'a flipper adapter'
- it 'forwards missing methods to underlying adapter' do
- adapter = Class.new do
- def foo
- :foo
- end
- end.new
- memoizable = described_class.new(adapter)
- expect(memoizable.foo).to eq(:foo)
- end
-
describe '#name' do
it 'is instrumented' do
expect(subject.name).to be(:memoizable)
end
end
@@ -243,9 +233,39 @@
feature = flipper[:stats]
gate = feature.gate(:boolean)
result = subject.disable(feature, gate, flipper.bool)
adapter_result = adapter.disable(feature, gate, flipper.bool)
expect(result).to eq(adapter_result)
+ end
+ end
+ end
+
+ describe "#import" do
+ context "with memoization enabled" do
+ before do
+ subject.memoize = true
+ end
+
+ it "unmemoizes features" do
+ cache[:foo] = "bar"
+ flipper[:stats].enable
+ flipper[:search].disable
+ subject.import(Flipper::Adapters::Memory.new)
+ expect(cache).to be_empty
+ end
+ end
+
+ context "with memoization disabled" do
+ before do
+ subject.memoize = false
+ end
+
+ it "does not unmemoize features" do
+ cache[:foo] = "bar"
+ flipper[:stats].enable
+ flipper[:search].disable
+ subject.import(Flipper::Adapters::Memory.new)
+ expect(cache).not_to be_empty
end
end
end
describe '#features' do