summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kalderimis <alex.kalderimis@gmail.com>2019-08-23 10:33:30 +0100
committerAlex Kalderimis <alex.kalderimis@gmail.com>2019-08-23 10:33:30 +0100
commit1353fae072677e52c4839a5453ea4bbb2b689473 (patch)
treebd2668a77bfcf8120c696a58220e4a21758b8932
parentda48c1da30363e54ccf600500a9296eda9dc4770 (diff)
downloadgitlab-ce-fix-forks-service.tar.gz
Ensure that the fork is always associated with its parentfix-forks-service
Also fixes tests for object-pool worker.
-rw-r--r--app/services/projects/fork_service.rb3
-rw-r--r--spec/workers/object_pool/create_worker_spec.rb4
2 files changed, 4 insertions, 3 deletions
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb
index b6886ef9705..fc5e41afbbf 100644
--- a/app/services/projects/fork_service.rb
+++ b/app/services/projects/fork_service.rb
@@ -62,13 +62,14 @@ module Projects
new_project = CreateService.new(current_user, new_params).execute
return new_project unless new_project.persisted?
- return new_project if new_project.errors.any?
# Set the forked_from_project relation after saving to avoid having to
# reload the project to reset the association information and cause an
# extra query.
new_project.forked_from_project = @project
+ return new_project if new_project.errors.any?
+
builds_access_level = @project.project_feature.builds_access_level
new_project.project_feature.update(builds_access_level: builds_access_level)
diff --git a/spec/workers/object_pool/create_worker_spec.rb b/spec/workers/object_pool/create_worker_spec.rb
index 06416489472..d26fb3fa0ea 100644
--- a/spec/workers/object_pool/create_worker_spec.rb
+++ b/spec/workers/object_pool/create_worker_spec.rb
@@ -24,7 +24,7 @@ describe ObjectPool::CreateWorker do
it 'cleans up the pool' do
expect do
subject.perform(pool.id)
- end.to raise_error(GRPC::FailedPrecondition)
+ end.to raise_error(described_class::NotCreated)
expect(pool.reload.failed?).to be(true)
end
@@ -38,7 +38,7 @@ describe ObjectPool::CreateWorker do
it 'marks the pool as failed' do
expect do
subject.perform(pool.id)
- end.to raise_error(GRPC::Internal)
+ end.to raise_error(have_attributes(cause: GRPC::Internal))
expect(pool.reload.failed?).to be(true)
end