diff options
author | Pavel Shutsin <pshutsin@gitlab.com> | 2019-08-13 23:59:10 +0300 |
---|---|---|
committer | Pavel Shutsin <pshutsin@gitlab.com> | 2019-08-14 00:58:56 +0300 |
commit | d620f62516e42c59c50eec2428f39eb5936373f9 (patch) | |
tree | 98f1acc069bedcc239b3a9fd9fa754498fb3ca3d | |
parent | 64b503927cf19b0982301ad4a73e459e937f45c2 (diff) | |
download | gitlab-ce-backport-introduce-analytics-worker.tar.gz |
Add merged_after scope for MR metricsbackport-introduce-analytics-worker
-rw-r--r-- | app/models/merge_request/metrics.rb | 2 | ||||
-rw-r--r-- | spec/models/merge_request/metrics_spec.rb | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/app/models/merge_request/metrics.rb b/app/models/merge_request/metrics.rb index 05f8e18a2c1..bc851fd4002 100644 --- a/app/models/merge_request/metrics.rb +++ b/app/models/merge_request/metrics.rb @@ -5,4 +5,6 @@ class MergeRequest::Metrics < ApplicationRecord belongs_to :pipeline, class_name: 'Ci::Pipeline', foreign_key: :pipeline_id belongs_to :latest_closed_by, class_name: 'User' belongs_to :merged_by, class_name: 'User' + + scope :merged_after, -> (date) { where('merged_at >= ?', date) } end diff --git a/spec/models/merge_request/metrics_spec.rb b/spec/models/merge_request/metrics_spec.rb index 49573af0fed..1c72d811447 100644 --- a/spec/models/merge_request/metrics_spec.rb +++ b/spec/models/merge_request/metrics_spec.rb @@ -10,4 +10,16 @@ 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 + + describe 'scopes' do + describe '.merged_after' do + it 'returns metrics merged after specified date' do + create(:merge_request) + merged_mr = create(:merge_request).tap { |mr| mr.metrics.update(merged_at: 1.day.ago) } + create(:merge_request).tap { |mr| mr.metrics.update(merged_at: 1.year.ago) } + + expect(described_class.merged_after(1.month.ago)).to match_array(merged_mr.metrics) + end + end + end end |