mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: setTextareaSelection helper (#7609)
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"es6": true,
|
"es6": true,
|
||||||
"jasmine": true,
|
"jasmine": true,
|
||||||
"mocha": true,
|
"mocha": true,
|
||||||
"node": true,
|
"node": true
|
||||||
},
|
},
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 7,
|
"ecmaVersion": 7,
|
||||||
@@ -57,6 +57,7 @@
|
|||||||
"selectKitSelectRowByIndex": true,
|
"selectKitSelectRowByIndex": true,
|
||||||
"selectKitSelectRowByName": true,
|
"selectKitSelectRowByName": true,
|
||||||
"selectKitSelectRowByValue": true,
|
"selectKitSelectRowByValue": true,
|
||||||
|
"setTextareaSelection": true,
|
||||||
"sinon": true,
|
"sinon": true,
|
||||||
"test": true,
|
"test": true,
|
||||||
"triggerEvent": true,
|
"triggerEvent": true,
|
||||||
@@ -99,7 +100,7 @@
|
|||||||
"semi": 2,
|
"semi": 2,
|
||||||
"strict": 0,
|
"strict": 0,
|
||||||
"valid-typeof": 2,
|
"valid-typeof": 2,
|
||||||
"wrap-iife": [2, "inside"],
|
"wrap-iife": [2, "inside"]
|
||||||
},
|
},
|
||||||
"parser": "babel-eslint"
|
"parser": "babel-eslint"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -777,11 +777,6 @@ composerTestCase("replace-text event for composer", async function(assert) {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
function setSelection(textarea, [start, len]) {
|
|
||||||
textarea.selectionStart = start;
|
|
||||||
textarea.selectionEnd = start + len;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSelection(textarea) {
|
function getSelection(textarea) {
|
||||||
const start = textarea.selectionStart;
|
const start = textarea.selectionStart;
|
||||||
const end = textarea.selectionEnd;
|
const end = textarea.selectionEnd;
|
||||||
@@ -802,13 +797,14 @@ composerTestCase("replace-text event for composer", async function(assert) {
|
|||||||
assert.ok(document.activeElement === textarea);
|
assert.ok(document.activeElement === textarea);
|
||||||
assert.ok(textarea.value === BEFORE);
|
assert.ok(textarea.value === BEFORE);
|
||||||
|
|
||||||
setSelection(textarea, CASE.before);
|
const [start, len] = CASE.before;
|
||||||
|
setTextareaSelection(textarea, start, start + len);
|
||||||
|
|
||||||
assert.ok(document.activeElement === textarea);
|
assert.ok(document.activeElement === textarea);
|
||||||
|
|
||||||
this.container
|
this.container
|
||||||
.lookup("app-events:main")
|
.lookup("app-events:main")
|
||||||
.trigger("composer:replace-text", "green", "yellow", {forceFocus: true});
|
.trigger("composer:replace-text", "green", "yellow", { forceFocus: true });
|
||||||
|
|
||||||
assert.ok(document.activeElement === textarea);
|
assert.ok(document.activeElement === textarea);
|
||||||
|
|
||||||
|
|||||||
9
test/javascripts/helpers/set-textarea-selection.js
Normal file
9
test/javascripts/helpers/set-textarea-selection.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Ember.Test.registerHelper("setTextareaSelection", function(
|
||||||
|
app,
|
||||||
|
textarea,
|
||||||
|
selectionStart,
|
||||||
|
selectionEnd
|
||||||
|
) {
|
||||||
|
textarea.selectionStart = selectionStart;
|
||||||
|
textarea.selectionEnd = selectionEnd;
|
||||||
|
});
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
//= require sinon/pkg/sinon
|
//= require sinon/pkg/sinon
|
||||||
|
|
||||||
//= require helpers/assertions
|
//= require helpers/assertions
|
||||||
|
//= require helpers/set-textarea-selection
|
||||||
//= require helpers/select-kit-helper
|
//= require helpers/select-kit-helper
|
||||||
//= require helpers/d-editor-helper
|
//= require helpers/d-editor-helper
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user