diff options
author | Eric Eastwood <contact@ericeastwood.com> | 2017-11-21 10:11:45 -0600 |
---|---|---|
committer | Eric Eastwood <contact@ericeastwood.com> | 2017-11-21 14:27:16 -0600 |
commit | 59502122bdf928e58a0592da0610f2a94bb5eeb4 (patch) | |
tree | eb521e2dc110b8a1645e6407f7d3c2e324fe1685 | |
parent | d41e66cb632cf4a51428c87a07cbdd182e3e0697 (diff) | |
download | gitlab-ce-59502122bdf928e58a0592da0610f2a94bb5eeb4.tar.gz |
Fix reply quote keyboard shortcut on MRs40295-fix-reply-quote-shortcut-on-mr
Fix https://gitlab.com/gitlab-org/gitlab-ce/issues/40295
-rw-r--r-- | app/assets/javascripts/dispatcher.js | 3 | ||||
-rw-r--r-- | spec/features/issuables/shortcuts_issuable_spec.rb | 46 | ||||
-rw-r--r-- | spec/spec_helper.rb | 1 | ||||
-rw-r--r-- | spec/support/selection_helper.rb | 6 |
4 files changed, 55 insertions, 1 deletions
diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index d716218d9a4..4e9e091d4df 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -317,7 +317,6 @@ import Diff from './diff'; break; case 'projects:merge_requests:show': new Diff(); - shortcut_handler = new ShortcutsIssuable(true); new ZenMode(); initIssuableSidebar(); @@ -327,6 +326,8 @@ import Diff from './diff'; window.mergeRequest = new MergeRequest({ action: mrShowNode.dataset.mrAction, }); + + shortcut_handler = new ShortcutsIssuable(true); break; case 'dashboard:activity': new gl.Activities(); diff --git a/spec/features/issuables/shortcuts_issuable_spec.rb b/spec/features/issuables/shortcuts_issuable_spec.rb new file mode 100644 index 00000000000..e25fd1a6249 --- /dev/null +++ b/spec/features/issuables/shortcuts_issuable_spec.rb @@ -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 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7c8331f6c60..6310ea1b52b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -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 diff --git a/spec/support/selection_helper.rb b/spec/support/selection_helper.rb new file mode 100644 index 00000000000..b4725b137b2 --- /dev/null +++ b/spec/support/selection_helper.rb @@ -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 |