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