summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-07-04 04:40:41 +0000
committerDouwe Maan <douwe@gitlab.com>2016-07-04 04:40:41 +0000
commit021b6aef94b3398ab5603b4c11afd4c6d8432795 (patch)
treedd07a012d164d91e4dd7d5d220179d57c049778f /spec/models
parent4b0bd4f828cbd957ab0d6b828addd294f1397252 (diff)
parent16ecd7c6dd642c46bda5806569032bc91d6ee70d (diff)
downloadgitlab-ce-021b6aef94b3398ab5603b4c11afd4c6d8432795.tar.gz
Merge branch '13524-keep-around-commits' into 'master'
Don't garbage collect commits that have related DB records like comments Closes #13524 Also needed for https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4101. See merge request !5062
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/merge_request_spec.rb4
-rw-r--r--spec/models/note_spec.rb4
-rw-r--r--spec/models/repository_spec.rb8
3 files changed, 14 insertions, 2 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 3b199f4d98d..ceb4d64698f 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -464,7 +464,7 @@ describe MergeRequest, models: true do
context 'when it is not broken and has no conflicts' do
it 'is marked as mergeable' do
allow(subject).to receive(:broken?) { false }
- allow(project).to receive_message_chain(:repository, :can_be_merged?) { true }
+ allow(project.repository).to receive(:can_be_merged?) { true }
expect { subject.check_if_can_be_merged }.to change { subject.merge_status }.to('can_be_merged')
end
@@ -481,7 +481,7 @@ describe MergeRequest, models: true do
context 'when it has conflicts' do
before do
allow(subject).to receive(:broken?) { false }
- allow(project).to receive_message_chain(:repository, :can_be_merged?) { false }
+ allow(project.repository).to receive(:can_be_merged?) { false }
end
it 'becomes unmergeable' do
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index 285ab19cfaf..6549791f675 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -70,6 +70,10 @@ describe Note, models: true do
it "should be recognized by #for_commit?" do
expect(note).to be_for_commit
end
+
+ it "keeps the commit around" do
+ expect(note.project.repository.kept_around?(commit.id)).to be_truthy
+ end
end
describe 'authorization' do
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index 851b8b241d7..e753306a31f 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -1117,6 +1117,14 @@ describe Repository, models: true do
end
end
+ describe "#keep_around" do
+ it "stores a reference to the specified commit sha so it isn't garbage collected" do
+ repository.keep_around(sample_commit.id)
+
+ expect(repository.kept_around?(sample_commit.id)).to be_truthy
+ end
+ end
+
def create_remote_branch(remote_name, branch_name, target)
rugged = repository.rugged
rugged.references.create("refs/remotes/#{remote_name}/#{branch_name}", target)