diff options
author | Alex Kalderimis <alex.kalderimis@gmail.com> | 2019-08-23 12:33:30 +0300 |
---|---|---|
committer | Alex Kalderimis <alex.kalderimis@gmail.com> | 2019-08-23 12:33:30 +0300 |
commit | 1353fae072677e52c4839a5453ea4bbb2b689473 (patch) | |
tree | bd2668a77bfcf8120c696a58220e4a21758b8932 | |
parent | da48c1da30363e54ccf600500a9296eda9dc4770 (diff) |
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.rb | 3 | ||||
-rw-r--r-- | spec/workers/object_pool/create_worker_spec.rb | 4 |
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 |