DEV: attempts to make d-editor tests more resilient (#7556)

This commit is contained in:
Joffrey JAFFEUX 2019-05-16 14:42:01 +02:00 committed by GitHub
parent 244c03573a
commit ad4d01233b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 16 deletions

View File

@ -675,7 +675,7 @@ export default Ember.Component.extend({
}
},
_replaceText(oldVal, newVal, opts) {
_replaceText(oldVal, newVal, opts = {}) {
const val = this.get("value");
const needleStart = val.indexOf(oldVal);
@ -693,7 +693,7 @@ export default Ember.Component.extend({
replacement: { start: needleStart, end: needleStart + newVal.length }
});
if (opts && opts.index && opts.regex) {
if (opts.index && opts.regex) {
let i = -1;
const newValue = val.replace(opts.regex, match => {
i++;
@ -705,7 +705,7 @@ export default Ember.Component.extend({
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.
this._selectText(
newSelection.start,

View File

@ -761,13 +761,12 @@ composerTestCase("replace-text event for composer", async function(assert) {
before: [BEFORE.length, 0],
after: [AFTER.length, 0]
},
// Flaky test. Marked as pending
//{
// description:
// "selection spanning needle start becomes selection until replacement start",
// before: [BEFORE.indexOf(NEEDLE) - 1, 2],
// after: [AFTER.indexOf(REPLACE) - 1, 1]
//},
{
description:
"selection spanning needle start becomes selection until replacement start",
before: [BEFORE.indexOf(NEEDLE) - 1, 2],
after: [AFTER.indexOf(REPLACE) - 1, 1]
},
{
description:
"selection spanning needle end becomes selection from replacement end",
@ -805,16 +804,22 @@ composerTestCase("replace-text event for composer", async function(assert) {
assert,
textarea
) {
const focusEvent = $.Event("focus");
const $input = $('textarea.d-editor-input');
$input.trigger(focusEvent);
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
.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 actual = await formatTextWithSelection( // eslint-disable-line no-undef