From 2e54454e6165a34004678eb45de3530f26a2ae2a Mon Sep 17 00:00:00 2001 From: James Lopez <james@jameslopez.es> Date: Thu, 24 Nov 2016 16:12:30 +0100 Subject: [PATCH] Add limit to the number of events showed in cycle analytics and spec --- bin/changelog | 2 ++ .../fix-cycle-analytics-events-limit.yml | 4 +++ .../cycle_analytics/events_query_spec.rb | 35 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 changelogs/unreleased/fix-cycle-analytics-events-limit.yml create mode 100644 spec/lib/gitlab/cycle_analytics/events_query_spec.rb diff --git a/bin/changelog b/bin/changelog index 4c894f8ff5b..70be4058137 100755 --- a/bin/changelog +++ b/bin/changelog @@ -80,6 +80,8 @@ class ChangelogEntry unless options.dry_run write + %x{git add #{file_path}} + amend_commit if options.amend end end diff --git a/changelogs/unreleased/fix-cycle-analytics-events-limit.yml b/changelogs/unreleased/fix-cycle-analytics-events-limit.yml new file mode 100644 index 00000000000..152b37ca430 --- /dev/null +++ b/changelogs/unreleased/fix-cycle-analytics-events-limit.yml @@ -0,0 +1,4 @@ +--- +title: Add limit to the number of events showed in cycle analytics +merge_request: +author: diff --git a/spec/lib/gitlab/cycle_analytics/events_query_spec.rb b/spec/lib/gitlab/cycle_analytics/events_query_spec.rb new file mode 100644 index 00000000000..c00e71f6672 --- /dev/null +++ b/spec/lib/gitlab/cycle_analytics/events_query_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe Gitlab::CycleAnalytics::EventsQuery do + let(:max_events) { 3 } + let(:project) { create(:project) } + let(:user) { create(:user, :admin) } + let(:options) { { from: 30.days.ago } } + + let(:issue_event) do + Gitlab::CycleAnalytics::IssueEvent.new(project: project, options: options) + end + + subject { described_class.new(project: project, options: options).execute(issue_event) } + + before do + allow_any_instance_of(Gitlab::ReferenceExtractor).to receive(:issues).and_return(Issue.all) + stub_const('Gitlab::CycleAnalytics::EventsQuery::MAX_EVENTS', max_events) + + setup_events(count: 5) + end + + it 'limits the rows the max number' do + expect(subject.count).to eq(max_events) + end + + def setup_events(count:) + count.times do + issue = create(:issue, project: project, created_at: 2.days.ago) + milestone = create(:milestone, project: project) + + issue.update(milestone: milestone) + create_merge_request_closing_issue(issue) + end + end +end -- GitLab