diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 15:06:03 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 15:06:03 +0000 |
commit | 4584eb0e07d372d6014de16ab359965475184c99 (patch) | |
tree | 586f35b77fac7ddfb8a05aa57b4fb6aa3d98212e /spec/lib | |
parent | bdbded586beb38e2ee4642c6a1e78ccbebc094dc (diff) | |
download | gitlab-ce-4584eb0e07d372d6014de16ab359965475184c99.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
11 files changed, 107 insertions, 2 deletions
diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb new file mode 100644 index 00000000000..29c8d548754 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart do + let(:subject) { described_class.new({}) } + let(:project) { create(:project) } + + it_behaves_like 'cycle analytics event' + + it 'needs connection with an issue via merge_requests_closing_issues table' do + issue = create(:issue, project: project) + merge_request = create(:merge_request, source_project: project) + create(:merge_requests_closing_issues, issue: issue, merge_request: merge_request) + + other_merge_request = create(:merge_request, source_project: project, source_branch: 'a', target_branch: 'master') + + records = subject.apply_query_customization(MergeRequest.all) + expect(records).to eq([merge_request]) + expect(records).not_to include(other_merge_request) + end +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb new file mode 100644 index 00000000000..efdef91c5a2 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb new file mode 100644 index 00000000000..50883e1c1e2 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb new file mode 100644 index 00000000000..85062db370a --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb new file mode 100644 index 00000000000..7858b810661 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb new file mode 100644 index 00000000000..ba9d8be5a2c --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb new file mode 100644 index 00000000000..8e83e10ef96 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb new file mode 100644 index 00000000000..9f6b430a320 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildStarted do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb new file mode 100644 index 00000000000..ce2aa0a60db --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged do + it_behaves_like 'cycle analytics event' +end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/stage_events/plan_stage_start_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/plan_stage_start_spec.rb new file mode 100644 index 00000000000..cb63139f0a8 --- /dev/null +++ b/spec/lib/gitlab/analytics/cycle_analytics/stage_events/plan_stage_start_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Analytics::CycleAnalytics::StageEvents::PlanStageStart do + let(:subject) { described_class.new({}) } + let(:project) { create(:project) } + + it_behaves_like 'cycle analytics event' + + it 'filters issues where first_associated_with_milestone_at or first_added_to_board_at is filled' do + issue1 = create(:issue, project: project) + issue1.metrics.update!(first_added_to_board_at: 1.month.ago, first_mentioned_in_commit_at: 2.months.ago) + + issue2 = create(:issue, project: project) + issue2.metrics.update!(first_associated_with_milestone_at: 1.month.ago, first_mentioned_in_commit_at: 2.months.ago) + + issue_without_metrics = create(:issue, project: project) + + records = subject.apply_query_customization(Issue.all) + expect(records).to match_array([issue1, issue2]) + expect(records).not_to include(issue_without_metrics) + 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 index 29f4be76a65..b05faf5d813 100644 --- 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 @@ -3,8 +3,11 @@ require 'spec_helper' describe Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent do + let(:instance) { described_class.new({}) } + 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) } + it { expect(instance).to respond_to(:object_type) } + it { expect(instance).to respond_to(:timestamp_projection) } + it { expect(instance).to respond_to(:apply_query_customization) } end |