Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/safe_request_store_spec.rb')
-rw-r--r--spec/lib/gitlab/safe_request_store_spec.rb257
1 files changed, 0 insertions, 257 deletions
diff --git a/spec/lib/gitlab/safe_request_store_spec.rb b/spec/lib/gitlab/safe_request_store_spec.rb
deleted file mode 100644
index accc491fbb7..00000000000
--- a/spec/lib/gitlab/safe_request_store_spec.rb
+++ /dev/null
@@ -1,257 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::SafeRequestStore do
- describe '.store' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect(described_class.store).to eq(RequestStore)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect(described_class.store).to be_a(Gitlab::NullRequestStore)
- end
- end
- end
-
- describe '.begin!' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:begin!)
-
- described_class.begin!
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:begin!)
-
- described_class.begin!
- end
- end
- end
-
- describe '.clear!' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:clear!).once.and_call_original
-
- described_class.clear!
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:clear!).and_call_original
-
- described_class.clear!
- end
- end
- end
-
- describe '.end!' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:end!).once.and_call_original
-
- described_class.end!
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'uses RequestStore' do
- expect(RequestStore).to receive(:end!).and_call_original
-
- described_class.end!
- end
- end
- end
-
- describe '.write' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- described_class.write('foo', true)
- end.to change { described_class.read('foo') }.from(nil).to(true)
- end
-
- it 'does not pass the options hash to the underlying store implementation' do
- expect(described_class.store).to receive(:write).with('foo', true)
-
- described_class.write('foo', true, expires_in: 15.seconds)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect do
- described_class.write('foo', true)
- end.not_to change { described_class.read('foo') }.from(nil)
- end
-
- it 'does not pass the options hash to the underlying store implementation' do
- expect(described_class.store).to receive(:write).with('foo', true)
-
- described_class.write('foo', true, expires_in: 15.seconds)
- end
- end
- end
-
- describe '.[]=' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- described_class['foo'] = true
- end.to change { described_class.read('foo') }.from(nil).to(true)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect do
- described_class['foo'] = true
- end.not_to change { described_class.read('foo') }.from(nil)
- end
- end
- end
-
- describe '.read' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- RequestStore.write('foo', true)
- end.to change { described_class.read('foo') }.from(nil).to(true)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect do
- RequestStore.write('foo', true)
- end.not_to change { described_class.read('foo') }.from(nil)
-
- RequestStore.clear! # Clean up
- end
- end
- end
-
- describe '.[]' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- RequestStore.write('foo', true)
- end.to change { described_class['foo'] }.from(nil).to(true)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect do
- RequestStore.write('foo', true)
- end.not_to change { described_class['foo'] }.from(nil)
-
- RequestStore.clear! # Clean up
- end
- end
- end
-
- describe '.exist?' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- RequestStore.write('foo', 'not nil')
- end.to change { described_class.exist?('foo') }.from(false).to(true)
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- expect do
- RequestStore.write('foo', 'not nil')
- end.not_to change { described_class.exist?('foo') }.from(false)
-
- RequestStore.clear! # Clean up
- end
- end
- end
-
- describe '.fetch' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- expect do
- described_class.fetch('foo') { 'block result' } # rubocop:disable Style/RedundantFetchBlock
- end.to change { described_class.read('foo') }.from(nil).to('block result')
- end
- end
-
- context 'when RequestStore is NOT active' do
- it 'does not use RequestStore' do
- RequestStore.clear! # Ensure clean
-
- expect do
- described_class.fetch('foo') { 'block result' } # rubocop:disable Style/RedundantFetchBlock
- end.not_to change { described_class.read('foo') }.from(nil)
-
- RequestStore.clear! # Clean up
- end
- end
- end
-
- describe '.delete' do
- context 'when RequestStore is active', :request_store do
- it 'uses RequestStore' do
- described_class.write('foo', true)
-
- expect do
- described_class.delete('foo')
- end.to change { described_class.read('foo') }.from(true).to(nil)
- end
-
- context 'when given a block and the key exists' do
- it 'does not execute the block' do
- described_class.write('foo', true)
-
- expect do |b|
- described_class.delete('foo', &b)
- end.not_to yield_control
- end
- end
-
- context 'when given a block and the key does not exist' do
- it 'yields the key and returns the block result' do
- result = described_class.delete('foo') { |key| "#{key} block result" }
-
- expect(result).to eq('foo block result')
- end
- end
- end
-
- context 'when RequestStore is NOT active' do
- before do
- RequestStore.write('foo', true)
- end
-
- after do
- RequestStore.clear! # Clean up
- end
-
- it 'does not use RequestStore' do
- expect do
- described_class.delete('foo')
- end.not_to change { RequestStore.read('foo') }.from(true)
- end
-
- context 'when given a block' do
- it 'yields the key and returns the block result' do
- result = described_class.delete('foo') { |key| "#{key} block result" }
-
- expect(result).to eq('foo block result')
- end
- end
- end
- end
-end