summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMałgorzata Ksionek <meksionek@gmail.com>2019-05-28 13:03:19 +0200
committerMałgorzata Ksionek <mksionek@gitlab.com>2019-06-14 13:26:27 +0200
commitaf0c48e4cdb6f17a619049931074f7ef23e5d3c6 (patch)
treea0e3e376a2b5f88c0257e61f220faec8c28499c6
parentdc8f1c1711f3718c0557c19f41fbd04798da4d16 (diff)
downloadgitlab-ce-af0c48e4cdb6f17a619049931074f7ef23e5d3c6.tar.gz
Add specs for issue stage
-rw-r--r--spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb b/spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb
index 3127f01989d..d252d6764e2 100644
--- a/spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb
+++ b/spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb
@@ -2,7 +2,32 @@ require 'spec_helper'
require 'lib/gitlab/cycle_analytics/shared_stage_spec'
describe Gitlab::CycleAnalytics::IssueStage do
+ HALF_AN_HOUR_IN_SECONDS = 60 * 30
+
let(:stage_name) { :issue }
it_behaves_like 'base stage'
+
+ describe '#median' do
+ let(:project) { create(:project) }
+ let!(:issue_1) { create(:issue, project: project, created_at: 90.minutes.ago) }
+ let!(:issue_2) { create(:issue, project: project, created_at: 60.minutes.ago) }
+ let!(:issue_3) { create(:issue, project: project, created_at: 30.minute.ago) }
+ let!(:issue_without_milestone) { create(:issue, project: project, created_at: 1.minute.ago) }
+ let(:stage) { described_class.new(project: project, options: { from: 2.days.ago }) }
+
+ before do
+ issue_1.metrics.update!(first_associated_with_milestone_at: 60.minutes.ago)
+ issue_2.metrics.update!(first_added_to_board_at: 30.minutes.ago)
+ issue_3.metrics.update!(first_added_to_board_at: 15.minutes.ago)
+ end
+
+ around do |example|
+ Timecop.freeze { example.run }
+ end
+
+ it 'counts median from issues with metrics' do
+ expect(stage.median).to eq(HALF_AN_HOUR_IN_SECONDS)
+ end
+ end
end