Merge branch '40295-fix-reply-quote-shortcut-on-mr' into 'master'

Fix reply quote keyboard shortcut on MRs

Closes #40295

See merge request gitlab-org/gitlab-ce!15523
This commit is contained in:
Clement Ho 2017-11-22 17:11:25 +00:00
commit 5083e0cf70
4 changed files with 55 additions and 1 deletions

View file

@ -317,7 +317,6 @@ import ProjectVariables from './project_variables';
break;
case 'projects:merge_requests:show':
new Diff();
shortcut_handler = new ShortcutsIssuable(true);
new ZenMode();
initIssuableSidebar();
@ -327,6 +326,8 @@ import ProjectVariables from './project_variables';
window.mergeRequest = new MergeRequest({
action: mrShowNode.dataset.mrAction,
});
shortcut_handler = new ShortcutsIssuable(true);
break;
case 'dashboard:activity':
new gl.Activities();

View file

@ -0,0 +1,46 @@
require 'spec_helper'
feature 'Blob shortcuts', :js do
let(:user) { create(:user) }
let(:project) { create(:project, :public, :repository) }
let(:issue) { create(:issue, project: project, author: user) }
let(:merge_request) { create(:merge_request, source_project: project) }
let(:note_text) { 'I got this!' }
before do
project.add_developer(user)
sign_in(user)
end
describe 'pressing "r"' do
describe 'On an Issue' do
before do
create(:note, noteable: issue, project: project, note: note_text)
visit project_issue_path(project, issue)
wait_for_requests
end
it 'quotes the selected text' do
select_element('.note-text')
find('body').native.send_key('r')
expect(find('.js-main-target-form .js-vue-comment-form').value).to include(note_text)
end
end
describe 'On a Merge Request' do
before do
create(:note, noteable: merge_request, project: project, note: note_text)
visit project_merge_request_path(project, merge_request)
wait_for_requests
end
it 'quotes the selected text' do
select_element('.note-text')
find('body').native.send_key('r')
expect(find('.js-main-target-form #note_note').value).to include(note_text)
end
end
end
end

View file

@ -50,6 +50,7 @@ RSpec.configure do |config|
config.include SearchHelpers, type: :feature
config.include CookieHelper, :js
config.include InputHelper, :js
config.include SelectionHelper, :js
config.include InspectRequests, :js
config.include WaitForRequests, :js
config.include LiveDebugger, :js

View file

@ -0,0 +1,6 @@
module SelectionHelper
def select_element(selector)
find(selector)
execute_script("let range = document.createRange(); let sel = window.getSelection(); range.selectNodeContents(document.querySelector('#{selector}')); sel.addRange(range);")
end
end