Test coverage for ApprovalRuleLike#add_member and remove_member

Currently we have:

describe '#add_member' do
  it 'adds as a member of the rule' do
    expect do
      subject.add_member(user1)
      subject.add_member(group1)
    end.to change { subject.users.count }.by(1).and change { subject.groups.count }.by(1)
  end

  it 'does nothing if already a member' do
    subject.add_member(user1)

    expect do
      subject.add_member(user1)
    end.not_to change { subject.users.count + subject.groups.count }
  end
end

describe '#remove_member' do
  it 'removes a member from the rule' do
    subject.add_member(group1)

    expect do
      subject.remove_member(group1)
    end.to change { subject.groups.count }.by(-1)
  end

  it 'does nothing if not a member' do
    expect do
      subject.remove_member(group1)
    end.not_to change { subject.groups.count }
  end
end

But it doesn't cover all the cases. For example, remove_member doesn't check against users.

The following discussion from !8497 (merged) should be addressed:

  • @godfat started a discussion: (+6 comments)
Assignee Loading
Time tracking Loading