diff options
Diffstat (limited to 'spec/models/members')
-rw-r--r-- | spec/models/members/group_member_spec.rb | 16 | ||||
-rw-r--r-- | spec/models/members/last_group_owner_assigner_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/members/project_member_spec.rb | 10 |
3 files changed, 27 insertions, 1 deletions
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb index 3a2db5d8516..8c942228059 100644 --- a/spec/models/members/group_member_spec.rb +++ b/spec/models/members/group_member_spec.rb @@ -37,6 +37,10 @@ RSpec.describe GroupMember do end end + describe 'delegations' do + it { is_expected.to delegate_method(:update_two_factor_requirement).to(:user).allow_nil } + end + describe '.access_level_roles' do it 'returns Gitlab::Access.options_with_owner' do expect(described_class.access_level_roles).to eq(Gitlab::Access.options_with_owner) @@ -93,6 +97,18 @@ RSpec.describe GroupMember do end end + describe '#destroy' do + context 'for an orphaned member' do + let!(:orphaned_group_member) do + create(:group_member).tap { |member| member.update_column(:user_id, nil) } + end + + it 'does not raise an error' do + expect { orphaned_group_member.destroy! }.not_to raise_error + end + end + end + describe '#after_accept_invite' do it 'calls #update_two_factor_requirement' do email = 'foo@email.com' diff --git a/spec/models/members/last_group_owner_assigner_spec.rb b/spec/models/members/last_group_owner_assigner_spec.rb index 3c9a7a11555..bb0f751e7d5 100644 --- a/spec/models/members/last_group_owner_assigner_spec.rb +++ b/spec/models/members/last_group_owner_assigner_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Members::LastGroupOwnerAssigner do +RSpec.describe LastGroupOwnerAssigner do describe "#execute" do let_it_be(:user, reload: true) { create(:user) } let_it_be(:group) { create(:group) } diff --git a/spec/models/members/project_member_spec.rb b/spec/models/members/project_member_spec.rb index fa77e319c2c..b84b408cb4b 100644 --- a/spec/models/members/project_member_spec.rb +++ b/spec/models/members/project_member_spec.rb @@ -58,6 +58,16 @@ RSpec.describe ProjectMember do maintainer.destroy! expect(Event.recent.first).to be_left_action end + + context 'for an orphaned member' do + let!(:orphaned_project_member) do + owner.tap { |member| member.update_column(:user_id, nil) } + end + + it 'does not raise an error' do + expect { orphaned_project_member.destroy! }.not_to raise_error + end + end end describe '.import_team' do |