diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2017-07-18 20:17:24 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2017-07-18 20:17:24 +0800 |
commit | 3c34a0b99be2cf858831043403ba2268ac270c77 (patch) | |
tree | b0d8239fc268a6e42c8c0dbc7874d8d85d723183 /spec | |
parent | 3c7cb6ad9e9d74c0f2fb7e8ba19f258c7316f445 (diff) | |
download | gitlab-ce-3c34a0b99be2cf858831043403ba2268ac270c77.tar.gz |
Remove old request store wrap
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/cache/request_store_wrap_spec.rb | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/spec/lib/gitlab/cache/request_store_wrap_spec.rb b/spec/lib/gitlab/cache/request_store_wrap_spec.rb deleted file mode 100644 index 87ea26a9635..00000000000 --- a/spec/lib/gitlab/cache/request_store_wrap_spec.rb +++ /dev/null @@ -1,107 +0,0 @@ -require 'spec_helper' - -describe Gitlab::Cache::RequestStoreWrap, :request_store do - class ExpensiveAlgorithm - extend Gitlab::Cache::RequestStoreWrap - - attr_accessor :id, :name, :result - - def initialize(id, name, result) - self.id = id - self.name = name - self.result = result - end - - request_store_wrap_key do - [id, name] - end - - request_store_wrap def compute(arg) - result << arg - end - - request_store_wrap def repute(arg) - result << arg - end - end - - let(:algorithm) { ExpensiveAlgorithm.new('id', 'name', []) } - - context 'when RequestStore is active' do - it 'does not compute twice for the same argument' do - result = algorithm.compute(true) - - expect(result).to eq([true]) - expect(algorithm.compute(true)).to eq(result) - expect(algorithm.result).to eq(result) - end - - it 'computes twice for the different argument' do - algorithm.compute(true) - result = algorithm.compute(false) - - expect(result).to eq([true, false]) - expect(algorithm.result).to eq(result) - end - - it 'computes twice for the different keys, id' do - algorithm.compute(true) - algorithm.id = 'ad' - result = algorithm.compute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - - it 'computes twice for the different keys, name' do - algorithm.compute(true) - algorithm.name = 'same' - result = algorithm.compute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - - it 'computes twice for the different class name' do - algorithm.compute(true) - allow(ExpensiveAlgorithm).to receive(:name).and_return('CheapAlgo') - result = algorithm.compute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - - it 'computes twice for the different method' do - algorithm.compute(true) - result = algorithm.repute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - - it 'computes twice if RequestStore starts over' do - algorithm.compute(true) - RequestStore.end! - RequestStore.clear! - RequestStore.begin! - result = algorithm.compute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - end - - context 'when RequestStore is inactive' do - before do - RequestStore.end! - end - - it 'computes twice even if everything is the same' do - algorithm.compute(true) - result = algorithm.compute(true) - - expect(result).to eq([true, true]) - expect(algorithm.result).to eq(result) - end - end -end |