summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Shutsin <pshutsin@gitlab.com>2019-08-13 23:59:10 +0300
committerPavel Shutsin <pshutsin@gitlab.com>2019-08-14 00:58:56 +0300
commitd620f62516e42c59c50eec2428f39eb5936373f9 (patch)
tree98f1acc069bedcc239b3a9fd9fa754498fb3ca3d
parent64b503927cf19b0982301ad4a73e459e937f45c2 (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/models/merge_request/metrics_spec.rb12
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