34 lines
1.3 KiB
Ruby
34 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'gitlab/danger/weightage/maintainers'
|
|
|
|
RSpec.describe Gitlab::Danger::Weightage::Maintainers do
|
|
let(:multiplier) { Gitlab::Danger::Weightage::CAPACITY_MULTIPLIER }
|
|
let(:regular_maintainer) { double('Teammate', reduced_capacity: false) }
|
|
let(:reduced_capacity_maintainer) { double('Teammate', reduced_capacity: true) }
|
|
let(:maintainers) do
|
|
[
|
|
regular_maintainer,
|
|
reduced_capacity_maintainer
|
|
]
|
|
end
|
|
|
|
let(:maintainer_count) { Gitlab::Danger::Weightage::BASE_REVIEWER_WEIGHT * multiplier }
|
|
let(:reduced_capacity_maintainer_count) { Gitlab::Danger::Weightage::BASE_REVIEWER_WEIGHT }
|
|
|
|
subject(:weighted_maintainers) { described_class.new(maintainers).execute }
|
|
|
|
describe '#execute' do
|
|
it 'weights the maintainers overall' do
|
|
expect(weighted_maintainers.count).to eq maintainer_count + reduced_capacity_maintainer_count
|
|
end
|
|
|
|
it 'has total count of regular maintainers' do
|
|
expect(weighted_maintainers.count { |r| r.object_id == regular_maintainer.object_id }).to eq maintainer_count
|
|
end
|
|
|
|
it 'has count of reduced capacity maintainers' do
|
|
expect(weighted_maintainers.count { |r| r.object_id == reduced_capacity_maintainer.object_id }).to eq reduced_capacity_maintainer_count
|
|
end
|
|
end
|
|
end
|