diff options
author | Jacob Vosmaer (GitLab) <jacob@gitlab.com> | 2017-11-21 19:00:05 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-11-21 19:00:05 +0000 |
commit | 00cd5d93ce2245204356cf550871cfb96ea7dc8e (patch) | |
tree | d7d1ec5e66c65ba23cb3f436d78269e058601e8e /spec | |
parent | 2822254ec5e6b27e092d2f850b48fd165f9424a0 (diff) | |
download | gitlab-ce-00cd5d93ce2245204356cf550871cfb96ea7dc8e.tar.gz |
Use Redis cache for branch existence checks
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/repository_spec.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 8a6aa767ce6..e9e6abb0d5f 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -1166,6 +1166,31 @@ describe Repository do end end + describe '#branch_exists?' do + it 'uses branch_names' do + allow(repository).to receive(:branch_names).and_return(['foobar']) + + expect(repository.branch_exists?('foobar')).to eq(true) + expect(repository.branch_exists?('master')).to eq(false) + end + end + + describe '#branch_names', :use_clean_rails_memory_store_caching do + let(:fake_branch_names) { ['foobar'] } + + it 'gets cached across Repository instances' do + allow(repository.raw_repository).to receive(:branch_names).once.and_return(fake_branch_names) + + expect(repository.branch_names).to eq(fake_branch_names) + + fresh_repository = Project.find(project.id).repository + expect(fresh_repository.object_id).not_to eq(repository.object_id) + + expect(fresh_repository.raw_repository).not_to receive(:branch_names) + expect(fresh_repository.branch_names).to eq(fake_branch_names) + end + end + describe '#update_autocrlf_option' do describe 'when autocrlf is not already set to :input' do before do |