diff options
author | Małgorzata Ksionek <meksionek@gmail.com> | 2019-05-28 13:03:19 +0200 |
---|---|---|
committer | Małgorzata Ksionek <mksionek@gitlab.com> | 2019-06-14 13:26:27 +0200 |
commit | af0c48e4cdb6f17a619049931074f7ef23e5d3c6 (patch) | |
tree | a0e3e376a2b5f88c0257e61f220faec8c28499c6 | |
parent | dc8f1c1711f3718c0557c19f41fbd04798da4d16 (diff) | |
download | gitlab-ce-af0c48e4cdb6f17a619049931074f7ef23e5d3c6.tar.gz |
Add specs for issue stage
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb | 25 |
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 |