diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-08-07 09:13:10 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-08-07 09:13:10 +0000 |
commit | 727b6d16e5e11933c0879cfa9ed5eb3bb9280cf1 (patch) | |
tree | 16649f5e4d23fb0a0d5f0b28cb25890d7999f493 /spec/models | |
parent | 4b34720c0ca8b5459cc56a4e52e11e213ab6ae9a (diff) | |
parent | 440dc934dec31b4ef3ee78e5ae366f832719b173 (diff) | |
download | gitlab-ce-727b6d16e5e11933c0879cfa9ed5eb3bb9280cf1.tar.gz |
Merge branch 'master' into 'bvl-nfs-circuitbreaker'
# Conflicts:
# app/models/repository.rb
# spec/models/repository_spec.rb
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/repository_spec.rb | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index d077925a1cf..b2039291699 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -154,10 +154,20 @@ describe Repository, models: true do end describe '#last_commit_for_path' do - subject { repository.last_commit_for_path(sample_commit.id, '.gitignore').id } + shared_examples 'getting last commit for path' do + subject { repository.last_commit_for_path(sample_commit.id, '.gitignore').id } - it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') } + it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') } + end + + context 'when Gitaly feature last_commit_for_path is enabled' do + it_behaves_like 'getting last commit for path' + end + context 'when Gitaly feature last_commit_for_path is disabled', skip_gitaly_mock: true do + it_behaves_like 'getting last commit for path' + end + describe 'when storage is broken', broken_storage: true do it 'should raise a storage error' do expect_to_raise_storage_error do @@ -168,18 +178,28 @@ describe Repository, models: true do end describe '#last_commit_id_for_path' do - subject { repository.last_commit_id_for_path(sample_commit.id, '.gitignore') } + shared_examples 'getting last commit ID for path' do + subject { repository.last_commit_id_for_path(sample_commit.id, '.gitignore') } - it "returns last commit id for a given path" do - is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') + it "returns last commit id for a given path" do + is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') + end + + it "caches last commit id for a given path" do + cache = repository.send(:cache) + key = "last_commit_id_for_path:#{sample_commit.id}:#{Digest::SHA1.hexdigest('.gitignore')}" + + expect(cache).to receive(:fetch).with(key).and_return('c1acaa5') + is_expected.to eq('c1acaa5') + end end - it "caches last commit id for a given path" do - cache = repository.send(:cache) - key = "last_commit_id_for_path:#{sample_commit.id}:#{Digest::SHA1.hexdigest('.gitignore')}" + context 'when Gitaly feature last_commit_for_path is enabled' do + it_behaves_like 'getting last commit ID for path' + end - expect(cache).to receive(:fetch).with(key).and_return('c1acaa5') - is_expected.to eq('c1acaa5') + context 'when Gitaly feature last_commit_for_path is disabled', skip_gitaly_mock: true do + it_behaves_like 'getting last commit ID for path' end describe 'when storage is broken', broken_storage: true do |