Skip to content
Snippets Groups Projects
Commit c77083a4 authored by Micael Bergeron's avatar Micael Bergeron
Browse files

fix the commit diff discussion sending the wrong url

it should now send you to the merge request diff path scoped to the commit.
parent c9041508
Branches 40063-markdown-editor-improvements
No related tags found
No related merge requests found
Loading
Loading
@@ -22,12 +22,10 @@ class DiffDiscussion < Discussion
 
def merge_request_version_params
return unless for_merge_request?
return {} if active?
 
if on_merge_request_commit?
{ commit_id: commit_id }
else
noteable.version_params_for(position.diff_refs)
version_params do |params|
params[:commit_id] = commit_id if on_merge_request_commit?
params
end
end
 
Loading
Loading
@@ -37,4 +35,15 @@ class DiffDiscussion < Discussion
position: position.to_json
)
end
private
def version_params
params = if active?
{}
else
noteable.version_params_for(position.diff_refs)
end
yield params
end
end
Loading
Loading
@@ -41,6 +41,7 @@ describe NotesHelper do
 
describe '#discussion_path' do
let(:project) { create(:project, :repository) }
let(:anchor) { discussion.line_code }
 
context 'for a merge request discusion' do
let(:merge_request) { create(:merge_request, source_project: project, target_project: project, importing: true) }
Loading
Loading
@@ -151,6 +152,15 @@ describe NotesHelper do
expect(helper.discussion_path(discussion)).to be_nil
end
end
context 'for a contextual commit discussion' do
let(:commit) { merge_request.commits.last }
let(:discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project, commit_id: commit.id).to_discussion }
it 'returns the merge request diff discussion scoped in the commit' do
expect(helper.discussion_path(discussion)).to eq(diffs_project_merge_request_path(project, merge_request, commit_id: commit.id, anchor: anchor))
end
end
end
 
context 'for a commit discussion' do
Loading
Loading
@@ -160,7 +170,7 @@ describe NotesHelper do
let(:discussion) { create(:diff_note_on_commit, project: project).to_discussion }
 
it 'returns the commit path with the line code' do
expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit, anchor: discussion.line_code))
expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit, anchor: anchor))
end
end
 
Loading
Loading
@@ -168,7 +178,7 @@ describe NotesHelper do
let(:discussion) { create(:legacy_diff_note_on_commit, project: project).to_discussion }
 
it 'returns the commit path with the line code' do
expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit, anchor: discussion.line_code))
expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit, anchor: anchor))
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment