mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 11:23:25 +08:00
FIX: Short URL resolution in cook-text (#10200)
Regressed in 3b51e05de2
. Thanks to @romanrizzi for reporting!
This commit is contained in:
parent
4a9ee25c56
commit
32ee9fae40
|
@ -2,6 +2,7 @@ import Component from "@ember/component";
|
|||
import { cookAsync } from "discourse/lib/text";
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import { resolveAllShortUrls } from "pretty-text/upload-short-url";
|
||||
import { afterRender } from "discourse-common/utils/decorators";
|
||||
|
||||
const CookText = Component.extend({
|
||||
cooked: null,
|
||||
|
@ -10,11 +11,13 @@ const CookText = Component.extend({
|
|||
this._super(...arguments);
|
||||
cookAsync(this.rawText).then(cooked => {
|
||||
this.set("cooked", cooked);
|
||||
|
||||
if (this.element && !this.isDestroying && !this.isDestroyed) {
|
||||
return resolveAllShortUrls(ajax, this.siteSettings, this.element);
|
||||
}
|
||||
this._resolveUrls();
|
||||
});
|
||||
},
|
||||
|
||||
@afterRender
|
||||
_resolveUrls() {
|
||||
resolveAllShortUrls(ajax, this.siteSettings, this.element);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
46
test/javascripts/components/cook-text-test.js
Normal file
46
test/javascripts/components/cook-text-test.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
import componentTest from "helpers/component-test";
|
||||
import pretender from "helpers/create-pretender";
|
||||
import { resetCache } from "pretty-text/upload-short-url";
|
||||
|
||||
moduleForComponent("cook-text", { integration: true });
|
||||
|
||||
componentTest("renders markdown", {
|
||||
template: '{{cook-text "_foo_" class="post-body"}}',
|
||||
|
||||
test(assert) {
|
||||
const html = find(".post-body")[0].innerHTML.trim();
|
||||
assert.equal(html, "<p><em>foo</em></p>");
|
||||
}
|
||||
});
|
||||
|
||||
componentTest("resolves short URLs", {
|
||||
template: `{{cook-text "![an image](upload://a.png)" class="post-body"}}`,
|
||||
|
||||
beforeEach() {
|
||||
pretender.post("/uploads/lookup-urls", () => {
|
||||
return [
|
||||
200,
|
||||
{ "Content-Type": "application/json" },
|
||||
[
|
||||
{
|
||||
short_url: "upload://a.png",
|
||||
url: "/uploads/default/original/3X/c/b/1.png",
|
||||
short_path: "/uploads/short-url/a.png"
|
||||
}
|
||||
]
|
||||
];
|
||||
});
|
||||
},
|
||||
|
||||
afterEach() {
|
||||
resetCache();
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
const html = find(".post-body")[0].innerHTML.trim();
|
||||
assert.equal(
|
||||
html,
|
||||
'<p><img src="/uploads/default/original/3X/c/b/1.png" alt="an image"></p>'
|
||||
);
|
||||
}
|
||||
});
|
Loading…
Reference in New Issue
Block a user