summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2016-03-15 20:17:51 +0100
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2016-03-15 21:59:25 +0100
commit48274581551b73575149463be0c050f6b5a564ee (patch)
treeb0a73eafdff2a6d5434c6a0b3dc1c5fbeafe74fb
parent2b97c921196a7be904bfe4f0a31347c3583c9e88 (diff)
downloadgitlab-ce-48274581551b73575149463be0c050f6b5a564ee.tar.gz
Incorporate the review and update spec
The feature spec now also tests the absence of the new branch button
-rw-r--r--CHANGELOG2
-rw-r--r--app/models/issue.rb22
-rw-r--r--app/services/system_note_service.rb4
-rw-r--r--spec/features/issues/new_branch_button_spec.rb11
-rw-r--r--spec/services/system_note_service_spec.rb2
5 files changed, 20 insertions, 21 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 563a5966400..b4a0bea736d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,7 @@ v 8.6.0 (unreleased)
- Bump gitlab_git to 9.0.3 (Stan Hu)
- Support Golang subpackage fetching (Stan Hu)
- Bump Capybara gem to 2.6.2 (Stan Hu)
+ - New branch button appears on issues where applicable
- Contributions to forked projects are included in calendar
- Improve the formatting for the user page bio (Connor Shea)
- Removed the default password from the initial admin account created during
@@ -59,7 +60,6 @@ v 8.5.3
- Show commit message in JIRA mention comment
- Makes issue page and merge request page usable on mobile browsers.
- Improved UI for profile settings
- - New branch button appears on issues where applicable
v 8.5.2
- Fix sidebar overlapping content when screen width was below 1200px
diff --git a/app/models/issue.rb b/app/models/issue.rb
index ec275d5f5b5..781298a63b2 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -87,20 +87,20 @@ class Issue < ActiveRecord::Base
end
def referenced_merge_requests(current_user = nil)
- if defined?(@referenced_merge_requests)
- @referenced_merge_requests[current_user] ||= Gitlab::ReferenceExtractor.lazily do
- [self, *notes].flat_map do |note|
- note.all_references(current_user).merge_requests
- end
- end.sort_by(&:iid).uniq
- else
- @referenced_merge_requests = {}
- referenced_merge_requests(current_user)
+ @referenced_merge_requests ||= {}
+ @referenced_merge_requests[current_user] ||= begin
+ Gitlab::ReferenceExtractor.lazily do
+ [self, *notes].flat_map do |note|
+ note.all_references(current_user).merge_requests
+ end
+ end.sort_by(&:iid).uniq
end
end
def related_branches
- self.project.repository.branch_names.select { |branch| branch.start_with? "#{iid}-" }
+ self.project.repository.branch_names.select do |branch|
+ branch =~ /\A#{iid}-(?!\d+-stable)/i
+ end
end
# Reset issue events cache
@@ -138,6 +138,6 @@ class Issue < ActiveRecord::Base
!self.closed? &&
!self.project.forked? &&
self.related_branches.empty? &&
- self.referenced_merge_requests(current_user).empty?
+ self.closed_by_merge_requests(current_user).empty?
end
end
diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index 5ea7d405e4d..f09b77c4a57 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -213,9 +213,9 @@ class SystemNoteService
# "Started branch `201-issue-branch-button`"
def self.new_issue_branch(issue, project, author, branch)
h = Gitlab::Application.routes.url_helpers
- link = "#{h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)}"
+ link = h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)
- body = "Started branch [#{branch}](#{link})"
+ body = "Started branch [`#{branch}`](#{link})"
create_note(noteable: issue, project: project, author: author, note: body)
end
diff --git a/spec/features/issues/new_branch_button_spec.rb b/spec/features/issues/new_branch_button_spec.rb
index f47d7a5471b..462cb1f8f62 100644
--- a/spec/features/issues/new_branch_button_spec.rb
+++ b/spec/features/issues/new_branch_button_spec.rb
@@ -18,14 +18,13 @@ feature 'Start new branch from an issue', feature: true do
end
context "when there is a referenced merge request" do
- let(:note) do
+ let(:note) do
create(:note, :on_issue, :system, project: project,
- note: "mentioned in !#{referenced_mr.iid}")
+ note: "mentioned in !#{referenced_mr.iid}")
end
- let(:referenced_mr) do
- create(:merge_request, source_project: project,
- target_project: project,
- description: "Fixes ##{issue.iid}")
+ let(:referenced_mr) do
+ create(:merge_request, :simple, source_project: project, target_project: project,
+ description: "Fixes ##{issue.iid}")
end
before do
diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb
index 2730b42c612..8e6292014d4 100644
--- a/spec/services/system_note_service_spec.rb
+++ b/spec/services/system_note_service_spec.rb
@@ -287,7 +287,7 @@ describe SystemNoteService, services: true do
context 'when a branch is created from the new branch button' do
it 'sets the note text' do
- expect(subject.note).to eq 'Started branch 1-mepmep'
+ expect(subject.note).to match /\AStarted branch [`1-mepmep`]/
end
end
end