Commit 29519edb authored by James Edwards-Jones's avatar James Edwards-Jones

Cycle analytics specs needed Commit to reference issue

The plan stage both measures time taken and lists related commits. We test for commits being listed, so needed to actually mention the issue in them. An alternative would have been adding “allow_any_instance_of(Commit).to receive(:matches_cross_reference_regex?).and_return(true)” but this felt too coupled to implementation.
parent 020295ff
...@@ -8,7 +8,7 @@ feature 'Cycle Analytics', feature: true, js: true do ...@@ -8,7 +8,7 @@ feature 'Cycle Analytics', feature: true, js: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:issue) { create(:issue, project: project, created_at: 2.days.ago) } let(:issue) { create(:issue, project: project, created_at: 2.days.ago) }
let(:milestone) { create(:milestone, project: project) } let(:milestone) { create(:milestone, project: project) }
let(:mr) { create_merge_request_closing_issue(issue) } let(:mr) { create_merge_request_closing_issue(issue, commit_message: "References #{issue.to_reference}") }
let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha) } let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha) }
context 'as an allowed user' do context 'as an allowed user' do
...@@ -34,7 +34,6 @@ feature 'Cycle Analytics', feature: true, js: true do ...@@ -34,7 +34,6 @@ feature 'Cycle Analytics', feature: true, js: true do
before do before do
project.team << [user, :master] project.team << [user, :master]
allow_any_instance_of(Gitlab::ReferenceExtractor).to receive(:issues).and_return([issue])
create_cycle create_cycle
deploy_master deploy_master
......
...@@ -11,8 +11,6 @@ describe 'cycle analytics events' do ...@@ -11,8 +11,6 @@ describe 'cycle analytics events' do
end end
before do before do
allow_any_instance_of(Gitlab::ReferenceExtractor).to receive(:issues).and_return([context])
setup(context) setup(context)
end end
...@@ -332,7 +330,7 @@ describe 'cycle analytics events' do ...@@ -332,7 +330,7 @@ describe 'cycle analytics events' do
def setup(context) def setup(context)
milestone = create(:milestone, project: project) milestone = create(:milestone, project: project)
context.update(milestone: milestone) context.update(milestone: milestone)
mr = create_merge_request_closing_issue(context) mr = create_merge_request_closing_issue(context, commit_message: "References #{context.to_reference}")
ProcessCommitWorker.new.perform(project.id, user.id, mr.commits.last.to_hash) ProcessCommitWorker.new.perform(project.id, user.id, mr.commits.last.to_hash)
end end
......
...@@ -11,8 +11,6 @@ describe 'cycle analytics events' do ...@@ -11,8 +11,6 @@ describe 'cycle analytics events' do
before do before do
project.team << [user, :developer] project.team << [user, :developer]
allow_any_instance_of(Gitlab::ReferenceExtractor).to receive(:issues).and_return([issue])
3.times do |count| 3.times do |count|
Timecop.freeze(Time.now + count.days) do Timecop.freeze(Time.now + count.days) do
create_cycle create_cycle
...@@ -123,7 +121,7 @@ describe 'cycle analytics events' do ...@@ -123,7 +121,7 @@ describe 'cycle analytics events' do
def create_cycle def create_cycle
milestone = create(:milestone, project: project) milestone = create(:milestone, project: project)
issue.update(milestone: milestone) issue.update(milestone: milestone)
mr = create_merge_request_closing_issue(issue) mr = create_merge_request_closing_issue(issue, commit_message: "References #{issue.to_reference}")
pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha) pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha)
pipeline.run pipeline.run
......
...@@ -20,7 +20,7 @@ module CycleAnalyticsHelpers ...@@ -20,7 +20,7 @@ module CycleAnalyticsHelpers
ref: 'refs/heads/master').execute ref: 'refs/heads/master').execute
end end
def create_merge_request_closing_issue(issue, message: nil, source_branch: nil) def create_merge_request_closing_issue(issue, message: nil, source_branch: nil, commit_message: 'commit message')
if !source_branch || project.repository.commit(source_branch).blank? if !source_branch || project.repository.commit(source_branch).blank?
source_branch = generate(:branch) source_branch = generate(:branch)
project.repository.add_branch(user, source_branch, 'master') project.repository.add_branch(user, source_branch, 'master')
...@@ -30,7 +30,7 @@ module CycleAnalyticsHelpers ...@@ -30,7 +30,7 @@ module CycleAnalyticsHelpers
user, user,
generate(:branch), generate(:branch),
'content', 'content',
message: 'commit message', message: commit_message,
branch_name: source_branch) branch_name: source_branch)
project.repository.commit(sha) project.repository.commit(sha)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment