Fix diff commenting results just after changing view
When you change the diff view (inline / side-by-side), we set a cookie based on that new view. When you add a comment, we choose the style to use in the response based on that cookie. However, when you have just changed diff style, the request cookie will contain the old value, so we should use the view param instead.
This commit is contained in:
parent
4ccecb7db4
commit
fdfb4bbe5c
3 changed files with 20 additions and 3 deletions
|
@ -15,7 +15,7 @@ module DiffHelper
|
|||
def diff_view
|
||||
@diff_view ||= begin
|
||||
diff_views = %w(inline parallel)
|
||||
diff_view = cookies[:diff_view]
|
||||
diff_view = params[:view] || cookies[:diff_view]
|
||||
diff_view = diff_views.first unless diff_views.include?(diff_view)
|
||||
diff_view.to_sym
|
||||
end
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix display of new diff comments after changing b between diff views
|
||||
merge_request:
|
||||
author:
|
|
@ -12,19 +12,32 @@ describe DiffHelper do
|
|||
let(:diff_file) { Gitlab::Diff::File.new(diff, diff_refs: diff_refs, repository: repository) }
|
||||
|
||||
describe 'diff_view' do
|
||||
it 'uses the view param over the cookie' do
|
||||
controller.params[:view] = 'parallel'
|
||||
helper.request.cookies[:diff_view] = 'inline'
|
||||
|
||||
expect(helper.diff_view).to eq :parallel
|
||||
end
|
||||
|
||||
it 'returns the default value when the view param is invalid' do
|
||||
controller.params[:view] = 'invalid'
|
||||
|
||||
expect(helper.diff_view).to eq :inline
|
||||
end
|
||||
|
||||
it 'returns a valid value when cookie is set' do
|
||||
helper.request.cookies[:diff_view] = 'parallel'
|
||||
|
||||
expect(helper.diff_view).to eq :parallel
|
||||
end
|
||||
|
||||
it 'returns a default value when cookie is invalid' do
|
||||
it 'returns the default value when cookie is invalid' do
|
||||
helper.request.cookies[:diff_view] = 'invalid'
|
||||
|
||||
expect(helper.diff_view).to eq :inline
|
||||
end
|
||||
|
||||
it 'returns a default value when cookie is nil' do
|
||||
it 'returns the default value when cookie is nil' do
|
||||
expect(helper.request.cookies).to be_empty
|
||||
|
||||
expect(helper.diff_view).to eq :inline
|
||||
|
|
Loading…
Reference in a new issue