diff options
Diffstat (limited to 'spec/services/projects/transfer_service_spec.rb')
-rw-r--r-- | spec/services/projects/transfer_service_spec.rb | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb index 92ed5ef3f0a..2704458ca4d 100644 --- a/spec/services/projects/transfer_service_spec.rb +++ b/spec/services/projects/transfer_service_spec.rb @@ -20,12 +20,32 @@ RSpec.describe Projects::TransferService, feature_category: :projects do subject(:transfer_service) { described_class.new(project, user) } - let!(:package) { create(:npm_package, project: project) } + let!(:package) { create(:npm_package, project: project, name: "@testscope/test") } context 'with a root namespace change' do + it 'allow the transfer' do + expect(transfer_service.execute(group)).to be true + expect(project.errors[:new_namespace]).to be_empty + end + end + + context 'with pending destruction package' do + before do + package.pending_destruction! + end + + it 'allow the transfer' do + expect(transfer_service.execute(group)).to be true + expect(project.errors[:new_namespace]).to be_empty + end + end + + context 'with namespaced packages present' do + let!(:package) { create(:npm_package, project: project, name: "@#{project.root_namespace.path}/test") } + it 'does not allow the transfer' do expect(transfer_service.execute(group)).to be false - expect(project.errors[:new_namespace]).to include("Root namespace can't be updated if project has NPM packages") + expect(project.errors[:new_namespace]).to include("Root namespace can't be updated if the project has NPM packages scoped to the current root level namespace.") end end @@ -39,7 +59,7 @@ RSpec.describe Projects::TransferService, feature_category: :projects do other_group.add_owner(user) end - it 'does allow the transfer' do + it 'allow the transfer' do expect(transfer_service.execute(other_group)).to be true expect(project.errors[:new_namespace]).to be_empty end |