Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2019-03-07 12:42:15 +0300
committerSean McGivern <sean@gitlab.com>2019-03-07 12:42:15 +0300
commit600fcb1562ba935a2636fc044567017e729a2876 (patch)
tree146b780a93b9af2bd2946527a558003c34897a4f /spec/services
parentcce51dc73ee02bb8f49bea6f3c18a3b7546a11b7 (diff)
parentdea631545f580d22e63ff09f9d9f194a559d2612 (diff)
Merge branch 'fix-group-without-owner' into 'master'
fix group without owner after transfer Closes #58086 See merge request gitlab-org/gitlab-ce!25573
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/groups/transfer_service_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/services/groups/transfer_service_spec.rb b/spec/services/groups/transfer_service_spec.rb
index 6b48c993c57..79d504b9b45 100644
--- a/spec/services/groups/transfer_service_spec.rb
+++ b/spec/services/groups/transfer_service_spec.rb
@@ -410,5 +410,34 @@ describe Groups::TransferService, :postgresql do
end
end
end
+
+ context 'when transferring a subgroup into root group' do
+ let(:group) { create(:group, :public, :nested) }
+ let(:subgroup) { create(:group, :public, parent: group) }
+ let(:transfer_service) { described_class.new(subgroup, user) }
+
+ it 'ensures there is still an owner for the transferred group' do
+ expect(subgroup.owners).to be_empty
+
+ transfer_service.execute(nil)
+ subgroup.reload
+
+ expect(subgroup.owners).to match_array(user)
+ end
+
+ context 'when group has explicit owner' do
+ let(:another_owner) { create(:user) }
+ let!(:another_member) { create(:group_member, :owner, group: subgroup, user: another_owner) }
+
+ it 'does not add additional owner' do
+ expect(subgroup.owners).to match_array(another_owner)
+
+ transfer_service.execute(nil)
+ subgroup.reload
+
+ expect(subgroup.owners).to match_array(another_owner)
+ end
+ end
+ end
end
end