DEV: Restore tests for inserting images as separate paragraphs (#15601)
This commit is contained in:
parent
307742e3aa
commit
59d78dcfcc
|
@ -2,6 +2,7 @@ import {
|
||||||
acceptance,
|
acceptance,
|
||||||
createFile,
|
createFile,
|
||||||
loggedInUser,
|
loggedInUser,
|
||||||
|
query,
|
||||||
queryAll,
|
queryAll,
|
||||||
} from "discourse/tests/helpers/qunit-helpers";
|
} from "discourse/tests/helpers/qunit-helpers";
|
||||||
import { withPluginApi } from "discourse/lib/plugin-api";
|
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||||
|
@ -173,6 +174,146 @@ acceptance("Uppy Composer Attachment - Upload Placeholder", function (needs) {
|
||||||
const image2 = createFile("avatar2.png");
|
const image2 = createFile("avatar2.png");
|
||||||
appEvents.trigger("composer:add-files", [image, image2]);
|
appEvents.trigger("composer:add-files", [image, image2]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("should insert a newline before and after an image when pasting in the end of the line", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
await fillIn(".d-editor-input", "The image:");
|
||||||
|
const appEvents = loggedInUser().appEvents;
|
||||||
|
const done = assert.async();
|
||||||
|
|
||||||
|
appEvents.on("composer:upload-started", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n[Uploading: avatar.png...]()\n"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
appEvents.on("composer:all-uploads-complete", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n"
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
const image = createFile("avatar.png");
|
||||||
|
appEvents.trigger("composer:add-files", image);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should insert a newline before and after an image when pasting in the middle of the line", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
await fillIn(".d-editor-input", "The image: Text after the image.");
|
||||||
|
const textArea = query(".d-editor-input");
|
||||||
|
textArea.selectionStart = 10;
|
||||||
|
textArea.selectionEnd = 10;
|
||||||
|
|
||||||
|
const appEvents = loggedInUser().appEvents;
|
||||||
|
const done = assert.async();
|
||||||
|
|
||||||
|
appEvents.on("composer:upload-started", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n[Uploading: avatar.png...]()\n Text after the image."
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
appEvents.on("composer:all-uploads-complete", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n Text after the image."
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
const image = createFile("avatar.png");
|
||||||
|
appEvents.trigger("composer:add-files", image);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should insert a newline before and after an image when pasting with text selected", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
await fillIn(
|
||||||
|
".d-editor-input",
|
||||||
|
"The image: [paste here] Text after the image."
|
||||||
|
);
|
||||||
|
const textArea = query(".d-editor-input");
|
||||||
|
textArea.selectionStart = 10;
|
||||||
|
textArea.selectionEnd = 23;
|
||||||
|
|
||||||
|
const appEvents = loggedInUser().appEvents;
|
||||||
|
const done = assert.async();
|
||||||
|
|
||||||
|
appEvents.on("composer:upload-started", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n[Uploading: avatar.png...]()\n Text after the image."
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
appEvents.on("composer:all-uploads-complete", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n Text after the image."
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
const image = createFile("avatar.png");
|
||||||
|
appEvents.trigger("composer:add-files", image);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should insert a newline only after an image when pasting into an empty composer", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
const appEvents = loggedInUser().appEvents;
|
||||||
|
const done = assert.async();
|
||||||
|
|
||||||
|
appEvents.on("composer:upload-started", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"[Uploading: avatar.png...]()\n"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
appEvents.on("composer:all-uploads-complete", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n"
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
const image = createFile("avatar.png");
|
||||||
|
appEvents.trigger("composer:add-files", image);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should insert a newline only after an image when pasting into a blank line", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
await fillIn(".d-editor-input", "The image:\n");
|
||||||
|
const appEvents = loggedInUser().appEvents;
|
||||||
|
const done = assert.async();
|
||||||
|
|
||||||
|
appEvents.on("composer:upload-started", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n[Uploading: avatar.png...]()\n"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
appEvents.on("composer:all-uploads-complete", () => {
|
||||||
|
assert.strictEqual(
|
||||||
|
queryAll(".d-editor-input").val(),
|
||||||
|
"The image:\n![avatar.PNG|690x320](upload://yoj8pf9DdIeHRRULyw7i57GAYdz.jpeg)\n"
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
const image = createFile("avatar.png");
|
||||||
|
appEvents.trigger("composer:add-files", image);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
acceptance("Uppy Composer Attachment - Upload Error", function (needs) {
|
acceptance("Uppy Composer Attachment - Upload Error", function (needs) {
|
||||||
|
|
Loading…
Reference in New Issue