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 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,

View File

@ -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