diff options
author | Ahmad Sherif <me@ahmadsherif.com> | 2018-02-06 16:32:34 +0100 |
---|---|---|
committer | Ahmad Sherif <me@ahmadsherif.com> | 2018-02-07 17:02:34 +0100 |
commit | cf25ef38d2e58a46c4a09e4bc416618afd676c78 (patch) | |
tree | 76d15a72fc2874b6f48c8c2af70ddf522f979cf0 /spec | |
parent | 9ab4c5b735e0e121996b092cb20bcdc423045c5e (diff) | |
download | gitlab-ce-cf25ef38d2e58a46c4a09e4bc416618afd676c78.tar.gz |
Cache Gitaly FindCommit RPC responsefix/cache-gitaly-find-commits
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/gitaly_client/commit_service_spec.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb index 3722a91c050..001c4d3e10a 100644 --- a/spec/lib/gitlab/gitaly_client/commit_service_spec.rb +++ b/spec/lib/gitlab/gitaly_client/commit_service_spec.rb @@ -166,6 +166,32 @@ describe Gitlab::GitalyClient::CommitService do described_class.new(repository).find_commit(revision) end + + describe 'caching', :request_store do + let(:commit_dbl) { double(id: 'f01b' * 10) } + + context 'when passed revision is a branch name' do + it 'calls Gitaly' do + expect_any_instance_of(Gitaly::CommitService::Stub).to receive(:find_commit).twice.and_return(double(commit: commit_dbl)) + + commit = nil + 2.times { commit = described_class.new(repository).find_commit('master') } + + expect(commit).to eq(commit_dbl) + end + end + + context 'when passed revision is a commit ID' do + it 'returns a cached commit' do + expect_any_instance_of(Gitaly::CommitService::Stub).to receive(:find_commit).once.and_return(double(commit: commit_dbl)) + + commit = nil + 2.times { commit = described_class.new(repository).find_commit('f01b' * 10) } + + expect(commit).to eq(commit_dbl) + end + end + end end describe '#patch' do |