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