Commit 48274581 authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg

Incorporate the review and update spec

The feature spec now also tests the absence of the new branch button
parent 2b97c921
...@@ -4,6 +4,7 @@ v 8.6.0 (unreleased) ...@@ -4,6 +4,7 @@ v 8.6.0 (unreleased)
- Bump gitlab_git to 9.0.3 (Stan Hu) - Bump gitlab_git to 9.0.3 (Stan Hu)
- Support Golang subpackage fetching (Stan Hu) - Support Golang subpackage fetching (Stan Hu)
- Bump Capybara gem to 2.6.2 (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 - Contributions to forked projects are included in calendar
- Improve the formatting for the user page bio (Connor Shea) - Improve the formatting for the user page bio (Connor Shea)
- Removed the default password from the initial admin account created during - Removed the default password from the initial admin account created during
...@@ -59,7 +60,6 @@ v 8.5.3 ...@@ -59,7 +60,6 @@ v 8.5.3
- Show commit message in JIRA mention comment - Show commit message in JIRA mention comment
- Makes issue page and merge request page usable on mobile browsers. - Makes issue page and merge request page usable on mobile browsers.
- Improved UI for profile settings - Improved UI for profile settings
- New branch button appears on issues where applicable
v 8.5.2 v 8.5.2
- Fix sidebar overlapping content when screen width was below 1200px - Fix sidebar overlapping content when screen width was below 1200px
......
...@@ -87,20 +87,20 @@ class Issue < ActiveRecord::Base ...@@ -87,20 +87,20 @@ class Issue < ActiveRecord::Base
end end
def referenced_merge_requests(current_user = nil) def referenced_merge_requests(current_user = nil)
if defined?(@referenced_merge_requests) @referenced_merge_requests ||= {}
@referenced_merge_requests[current_user] ||= Gitlab::ReferenceExtractor.lazily do @referenced_merge_requests[current_user] ||= begin
[self, *notes].flat_map do |note| Gitlab::ReferenceExtractor.lazily do
note.all_references(current_user).merge_requests [self, *notes].flat_map do |note|
end note.all_references(current_user).merge_requests
end.sort_by(&:iid).uniq end
else end.sort_by(&:iid).uniq
@referenced_merge_requests = {}
referenced_merge_requests(current_user)
end end
end end
def related_branches 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 end
# Reset issue events cache # Reset issue events cache
...@@ -138,6 +138,6 @@ class Issue < ActiveRecord::Base ...@@ -138,6 +138,6 @@ class Issue < ActiveRecord::Base
!self.closed? && !self.closed? &&
!self.project.forked? && !self.project.forked? &&
self.related_branches.empty? && self.related_branches.empty? &&
self.referenced_merge_requests(current_user).empty? self.closed_by_merge_requests(current_user).empty?
end end
end end
...@@ -213,9 +213,9 @@ class SystemNoteService ...@@ -213,9 +213,9 @@ class SystemNoteService
# "Started branch `201-issue-branch-button`" # "Started branch `201-issue-branch-button`"
def self.new_issue_branch(issue, project, author, branch) def self.new_issue_branch(issue, project, author, branch)
h = Gitlab::Application.routes.url_helpers 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) create_note(noteable: issue, project: project, author: author, note: body)
end end
......
...@@ -18,14 +18,13 @@ feature 'Start new branch from an issue', feature: true do ...@@ -18,14 +18,13 @@ feature 'Start new branch from an issue', feature: true do
end end
context "when there is a referenced merge request" do context "when there is a referenced merge request" do
let(:note) do let(:note) do
create(:note, :on_issue, :system, project: project, create(:note, :on_issue, :system, project: project,
note: "mentioned in !#{referenced_mr.iid}") note: "mentioned in !#{referenced_mr.iid}")
end end
let(:referenced_mr) do let(:referenced_mr) do
create(:merge_request, source_project: project, create(:merge_request, :simple, source_project: project, target_project: project,
target_project: project, description: "Fixes ##{issue.iid}")
description: "Fixes ##{issue.iid}")
end end
before do before do
......
...@@ -287,7 +287,7 @@ describe SystemNoteService, services: true do ...@@ -287,7 +287,7 @@ describe SystemNoteService, services: true do
context 'when a branch is created from the new branch button' do context 'when a branch is created from the new branch button' do
it 'sets the note text' 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 end
end end
......
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