diff options
author | Alejandro RodrÃguez <alejorro70@gmail.com> | 2018-03-06 22:25:12 -0300 |
---|---|---|
committer | Alejandro RodrÃguez <alejorro70@gmail.com> | 2018-03-08 11:54:21 -0300 |
commit | bb2bf39ddfc05db887d4a02ad3a38dbf81beed1a (patch) | |
tree | e175678908f5b0f1d0d469adb0859ecd88dd3d4e /spec | |
parent | 5171e2f3d4fdc681a58e11f9615afa968324a278 (diff) | |
download | gitlab-ce-bb2bf39ddfc05db887d4a02ad3a38dbf81beed1a.tar.gz |
Cache `#can_be_resolved_in_ui?` git operationscache-refactor
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/conflict/file_collection_spec.rb | 32 | ||||
-rw-r--r-- | spec/lib/gitlab/repository_cache_spec.rb | 18 |
2 files changed, 48 insertions, 2 deletions
diff --git a/spec/lib/gitlab/conflict/file_collection_spec.rb b/spec/lib/gitlab/conflict/file_collection_spec.rb index 5944ce8049a..c93912db411 100644 --- a/spec/lib/gitlab/conflict/file_collection_spec.rb +++ b/spec/lib/gitlab/conflict/file_collection_spec.rb @@ -10,6 +10,38 @@ describe Gitlab::Conflict::FileCollection do end end + describe '#cache' do + it 'specifies a custom namespace with the merge request commit ids' do + our_commit = merge_request.source_branch_head.raw + their_commit = merge_request.target_branch_head.raw + custom_namespace = "#{our_commit.id}:#{their_commit.id}" + + expect(file_collection.send(:cache).namespace).to include(custom_namespace) + end + end + + describe '#can_be_resolved_in_ui?' do + it 'returns true if conflicts for this collection can be resolved in the UI' do + expect(file_collection.can_be_resolved_in_ui?).to be true + end + + it "returns false if conflicts for this collection can't be resolved in the UI" do + expect(file_collection).to receive(:files).and_raise(Gitlab::Git::Conflict::Resolver::ConflictSideMissing) + + expect(file_collection.can_be_resolved_in_ui?).to be false + end + + it 'caches the result' do + expect(file_collection).to receive(:files).twice.and_call_original + + expect(file_collection.can_be_resolved_in_ui?).to be true + + expect(file_collection).not_to receive(:files) + + expect(file_collection.can_be_resolved_in_ui?).to be true + end + end + describe '#default_commit_message' do it 'matches the format of the git CLI commit message' do expect(file_collection.default_commit_message).to eq(<<EOM.chomp) diff --git a/spec/lib/gitlab/repository_cache_spec.rb b/spec/lib/gitlab/repository_cache_spec.rb index f4789421663..fc259cf1208 100644 --- a/spec/lib/gitlab/repository_cache_spec.rb +++ b/spec/lib/gitlab/repository_cache_spec.rb @@ -5,11 +5,25 @@ describe Gitlab::RepositoryCache do let(:project) { create(:project) } let(:repository) { project.repository } let(:namespace) { "#{repository.full_path}:#{project.id}" } - let(:cache) { described_class.new(repository, backend) } + let(:cache) { described_class.new(repository, backend: backend) } describe '#cache_key' do + subject { cache.cache_key(:foo) } + it 'includes the namespace' do - expect(cache.cache_key(:foo)).to eq "foo:#{namespace}" + expect(subject).to eq "foo:#{namespace}" + end + + context 'with a given namespace' do + let(:extra_namespace) { 'my:data' } + let(:cache) do + described_class.new(repository, extra_namespace: extra_namespace, + backend: backend) + end + + it 'includes the full namespace' do + expect(subject).to eq "foo:#{namespace}:#{extra_namespace}" + end end end |