DEV: attempts to make d-editor tests more resilient (#7556)
This commit is contained in:
parent
244c03573a
commit
ad4d01233b
|
@ -675,7 +675,7 @@ export default Ember.Component.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_replaceText(oldVal, newVal, opts) {
|
_replaceText(oldVal, newVal, opts = {}) {
|
||||||
const val = this.get("value");
|
const val = this.get("value");
|
||||||
const needleStart = val.indexOf(oldVal);
|
const needleStart = val.indexOf(oldVal);
|
||||||
|
|
||||||
|
@ -693,7 +693,7 @@ export default Ember.Component.extend({
|
||||||
replacement: { start: needleStart, end: needleStart + newVal.length }
|
replacement: { start: needleStart, end: needleStart + newVal.length }
|
||||||
});
|
});
|
||||||
|
|
||||||
if (opts && opts.index && opts.regex) {
|
if (opts.index && opts.regex) {
|
||||||
let i = -1;
|
let i = -1;
|
||||||
const newValue = val.replace(opts.regex, match => {
|
const newValue = val.replace(opts.regex, match => {
|
||||||
i++;
|
i++;
|
||||||
|
@ -705,7 +705,7 @@ export default Ember.Component.extend({
|
||||||
this.set("value", val.replace(oldVal, newVal));
|
this.set("value", val.replace(oldVal, newVal));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($("textarea.d-editor-input").is(":focus")) {
|
if (opts.forceFocus || $("textarea.d-editor-input").is(":focus")) {
|
||||||
// Restore cursor.
|
// Restore cursor.
|
||||||
this._selectText(
|
this._selectText(
|
||||||
newSelection.start,
|
newSelection.start,
|
||||||
|
|
|
@ -761,13 +761,12 @@ composerTestCase("replace-text event for composer", async function(assert) {
|
||||||
before: [BEFORE.length, 0],
|
before: [BEFORE.length, 0],
|
||||||
after: [AFTER.length, 0]
|
after: [AFTER.length, 0]
|
||||||
},
|
},
|
||||||
// Flaky test. Marked as pending
|
{
|
||||||
//{
|
description:
|
||||||
// description:
|
"selection spanning needle start becomes selection until replacement start",
|
||||||
// "selection spanning needle start becomes selection until replacement start",
|
before: [BEFORE.indexOf(NEEDLE) - 1, 2],
|
||||||
// before: [BEFORE.indexOf(NEEDLE) - 1, 2],
|
after: [AFTER.indexOf(REPLACE) - 1, 1]
|
||||||
// after: [AFTER.indexOf(REPLACE) - 1, 1]
|
},
|
||||||
//},
|
|
||||||
{
|
{
|
||||||
description:
|
description:
|
||||||
"selection spanning needle end becomes selection from replacement end",
|
"selection spanning needle end becomes selection from replacement end",
|
||||||
|
@ -805,16 +804,22 @@ composerTestCase("replace-text event for composer", async function(assert) {
|
||||||
assert,
|
assert,
|
||||||
textarea
|
textarea
|
||||||
) {
|
) {
|
||||||
const focusEvent = $.Event("focus");
|
|
||||||
const $input = $('textarea.d-editor-input');
|
|
||||||
$input.trigger(focusEvent);
|
|
||||||
|
|
||||||
this.set("value", BEFORE);
|
this.set("value", BEFORE);
|
||||||
await setSelection(textarea, CASE.before);
|
|
||||||
|
textarea.focus();
|
||||||
|
|
||||||
|
assert.ok(document.activeElement === textarea);
|
||||||
|
assert.ok(textarea.value === BEFORE);
|
||||||
|
|
||||||
|
setSelection(textarea, CASE.before);
|
||||||
|
|
||||||
|
assert.ok(document.activeElement === textarea);
|
||||||
|
|
||||||
this.container
|
this.container
|
||||||
.lookup("app-events:main")
|
.lookup("app-events:main")
|
||||||
.trigger("composer:replace-text", "green", "yellow");
|
.trigger("composer:replace-text", "green", "yellow", {forceFocus: true});
|
||||||
|
|
||||||
|
assert.ok(document.activeElement === textarea);
|
||||||
|
|
||||||
let expect = await formatTextWithSelection(AFTER, CASE.after); // eslint-disable-line no-undef
|
let expect = await formatTextWithSelection(AFTER, CASE.after); // eslint-disable-line no-undef
|
||||||
let actual = await formatTextWithSelection( // eslint-disable-line no-undef
|
let actual = await formatTextWithSelection( // eslint-disable-line no-undef
|
||||||
|
|
Loading…
Reference in New Issue