diff options
Diffstat (limited to 'spec/models/merge_request/metrics_spec.rb')
-rw-r--r-- | spec/models/merge_request/metrics_spec.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/models/merge_request/metrics_spec.rb b/spec/models/merge_request/metrics_spec.rb index 4d9e768ecc6..82402b95597 100644 --- a/spec/models/merge_request/metrics_spec.rb +++ b/spec/models/merge_request/metrics_spec.rb @@ -8,4 +8,44 @@ RSpec.describe MergeRequest::Metrics do it { is_expected.to belong_to(:latest_closed_by).class_name('User') } it { is_expected.to belong_to(:merged_by).class_name('User') } end + + it 'sets `target_project_id` before save' do + merge_request = create(:merge_request) + metrics = merge_request.metrics + + metrics.update_column(:target_project_id, nil) + + metrics.save! + + expect(metrics.target_project_id).to eq(merge_request.target_project_id) + end + + describe 'scopes' do + let_it_be(:metrics_1) { create(:merge_request).metrics.tap { |m| m.update!(merged_at: 10.days.ago) } } + let_it_be(:metrics_2) { create(:merge_request).metrics.tap { |m| m.update!(merged_at: 5.days.ago) } } + + describe '.merged_after' do + subject { described_class.merged_after(7.days.ago) } + + it 'finds the record' do + is_expected.to eq([metrics_2]) + end + + it "doesn't include record outside of the filter" do + is_expected.not_to include([metrics_1]) + end + end + + describe '.merged_before' do + subject { described_class.merged_before(7.days.ago) } + + it 'finds the record' do + is_expected.to eq([metrics_1]) + end + + it "doesn't include record outside of the filter" do + is_expected.not_to include([metrics_2]) + end + end + end end |