diff options
author | Adam Hegyi <ahegyi@gitlab.com> | 2019-08-23 08:13:46 +0200 |
---|---|---|
committer | Adam Hegyi <ahegyi@gitlab.com> | 2019-08-23 11:59:34 +0200 |
commit | 6f1664ff8e206b94fd010648f2cc5e62fb630b36 (patch) | |
tree | 4f6ff9cabe98897e15d8965a5f0bd59ddae91991 | |
parent | 46dffc3f4a72399c708ceca09ab1f1bd46c72b9d (diff) | |
download | gitlab-ce-new-cycle-analytics-backend-stage-events.tar.gz |
Address CR remarksnew-cycle-analytics-backend-stage-events
- Add comment for DefaultStages
- Test StageEvent interface
4 files changed, 29 insertions, 5 deletions
diff --git a/lib/gitlab/analytics/cycle_analytics/default_stages.rb b/lib/gitlab/analytics/cycle_analytics/default_stages.rb index 7a26c7ba680..286c393005f 100644 --- a/lib/gitlab/analytics/cycle_analytics/default_stages.rb +++ b/lib/gitlab/analytics/cycle_analytics/default_stages.rb @@ -1,6 +1,12 @@ # frozen_string_literal: true # This module represents the default Cycle Analytics stages that are currently provided by CE +# Each method returns a hash that can be used to build a new stage object. +# +# Example: +# +# params = Gitlab::Analytics::CycleAnalytics::DefaultStages.params_for_issue_stage +# Analytics::CycleAnalytics::ProjectStage.new(params) module Gitlab module Analytics module CycleAnalytics @@ -20,10 +26,10 @@ module Gitlab def self.params_for_issue_stage { name: 'issue', - custom: false, - relative_position: 1, - start_event_identifier: :issue_created, - end_event_identifier: :issue_stage_end + custom: false, # this stage won't be customizable, we provide it as it is + relative_position: 1, # when opening the CycleAnalytics page in CE, this stage will be the first item + start_event_identifier: :issue_created, # IssueCreated class is used as start event + end_event_identifier: :issue_stage_end # IssueStageEnd class is used as end event } end diff --git a/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end.rb b/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end.rb index 181c1da3d82..ceb229c552f 100644 --- a/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end.rb +++ b/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end.rb @@ -6,7 +6,7 @@ module Gitlab module StageEvents class IssueStageEnd < SimpleStageEvent def self.name - s_("CycleAnalyticsEvent|Issue first associated with a milestone or issue first added to a board") + PlanStageStart.name end def self.identifier diff --git a/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb b/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb index 76c2259d892..a55eee048c2 100644 --- a/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb +++ b/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb @@ -13,6 +13,14 @@ module Gitlab def self.name raise NotImplementedError end + + def self.identifier + raise NotImplementedError + end + + def object_type + raise NotImplementedError + end end end end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb new file mode 100644 index 00000000000..29f4be76a65 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent do + it { expect(described_class).to respond_to(:name) } + it { expect(described_class).to respond_to(:identifier) } + + it { expect(described_class.new({})).to respond_to(:object_type) } +end |