summaryrefslogtreecommitdiff
path: root/spec/models/members/group_member_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/members/group_member_spec.rb')
-rw-r--r--spec/models/members/group_member_spec.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb
index 77bc6d9753f..4ac7ce95b84 100644
--- a/spec/models/members/group_member_spec.rb
+++ b/spec/models/members/group_member_spec.rb
@@ -120,6 +120,40 @@ RSpec.describe GroupMember do
end
end
+ describe '#last_owner_of_the_group?' do
+ context 'when member is an owner' do
+ let_it_be(:group_member) { build(:group_member, :owner) }
+
+ using RSpec::Parameterized::TableSyntax
+
+ where(:member_last_owner?, :member_last_blocked_owner?, :expected) do
+ false | false | false
+ true | false | true
+ false | true | true
+ true | true | true
+ end
+
+ with_them do
+ it "returns expected" do
+ allow(group_member.group).to receive(:member_last_owner?).with(group_member).and_return(member_last_owner?)
+ allow(group_member.group).to receive(:member_last_blocked_owner?)
+ .with(group_member)
+ .and_return(member_last_blocked_owner?)
+
+ expect(group_member.last_owner_of_the_group?).to be(expected)
+ end
+ end
+ end
+
+ context 'when member is not an owner' do
+ let_it_be(:group_member) { build(:group_member, :guest) }
+
+ subject { group_member.last_owner_of_the_group? }
+
+ it { is_expected.to be(false) }
+ end
+ end
+
context 'access levels' do
context 'with parent group' do
it_behaves_like 'inherited access level as a member of entity' do