43 lines
1 KiB
Ruby
43 lines
1 KiB
Ruby
|
require 'rails_helper'
|
||
|
|
||
|
describe MergeRequestMetricsService do
|
||
|
let(:metrics) { create(:merge_request).metrics }
|
||
|
|
||
|
describe '#merge' do
|
||
|
it 'updates metrics' do
|
||
|
user = create(:user)
|
||
|
service = described_class.new(metrics)
|
||
|
event = double(Event, author_id: user.id, created_at: Time.now)
|
||
|
|
||
|
service.merge(event)
|
||
|
|
||
|
expect(metrics.merged_by).to eq(user)
|
||
|
expect(metrics.merged_at).to eq(event.created_at)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#close' do
|
||
|
it 'updates metrics' do
|
||
|
user = create(:user)
|
||
|
service = described_class.new(metrics)
|
||
|
event = double(Event, author_id: user.id, created_at: Time.now)
|
||
|
|
||
|
service.close(event)
|
||
|
|
||
|
expect(metrics.latest_closed_by).to eq(user)
|
||
|
expect(metrics.latest_closed_at).to eq(event.created_at)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '#reopen' do
|
||
|
it 'updates metrics' do
|
||
|
service = described_class.new(metrics)
|
||
|
|
||
|
service.reopen
|
||
|
|
||
|
expect(metrics.latest_closed_by).to be_nil
|
||
|
expect(metrics.latest_closed_at).to be_nil
|
||
|
end
|
||
|
end
|
||
|
end
|