diff --git a/app/assets/javascripts/discourse/components/d-editor.js.es6 b/app/assets/javascripts/discourse/components/d-editor.js.es6 index 14c83b140..71fcb6c57 100644 --- a/app/assets/javascripts/discourse/components/d-editor.js.es6 +++ b/app/assets/javascripts/discourse/components/d-editor.js.es6 @@ -279,10 +279,6 @@ export default Ember.Component.extend({ let start = textarea.selectionStart; let end = textarea.selectionEnd; - if (start === end) { - start = end = textarea.value.length; - } - const value = textarea.value.substring(start, end); const pre = textarea.value.slice(0, start); const post = textarea.value.slice(end); diff --git a/test/javascripts/components/d-editor-test.js.es6 b/test/javascripts/components/d-editor-test.js.es6 index 08f3568fd..8891f9fb5 100644 --- a/test/javascripts/components/d-editor-test.js.es6 +++ b/test/javascripts/components/d-editor-test.js.es6 @@ -411,6 +411,18 @@ testCase(`heading button with no selection`, function(assert, textarea) { }); }); +testCase(`rule between things`, function(assert, textarea) { + textarea.selectionStart = 5; + textarea.selectionEnd = 5; + + click(`button.rule`); + andThen(() => { + assert.equal(this.get('value'), `hello\n\n----------\n world.`); + assert.equal(textarea.selectionStart, 18); + assert.equal(textarea.selectionEnd, 18); + }); +}); + testCase(`rule with no selection`, function(assert, textarea) { click(`button.rule`); andThen(() => {