From d620f62516e42c59c50eec2428f39eb5936373f9 Mon Sep 17 00:00:00 2001 From: Pavel Shutsin Date: Tue, 13 Aug 2019 23:59:10 +0300 Subject: Add merged_after scope for MR metrics --- app/models/merge_request/metrics.rb | 2 ++ spec/models/merge_request/metrics_spec.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+) 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 -- cgit v1.2.1