mirror of
https://github.com/discourse/discourse.git
synced 2025-04-27 17:44:32 +08:00

* DEV: Add test case for syntax highlight of complex HTML The commit 685e0da upgrade HighlightJS to version 11, which deprecates syntax highlight of complex HTML elements. See https://github.com/highlightjs/highlight.js/issues/2889 This brought a regression of syntax highlighting of GitHub oneboxes, which was fixed in 09cec7d. This commit adds a test case to prevent future regressions like this one. * fix test and warning
35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import { module, test } from "qunit";
|
|
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
|
import { render } from "@ember/test-helpers";
|
|
import { query } from "discourse/tests/helpers/qunit-helpers";
|
|
import { hbs } from "ember-cli-htmlbars";
|
|
|
|
const LONG_CODE_BLOCK = "puts a\n".repeat(15000);
|
|
|
|
module("Integration | Component | highlighted-code", function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
test("highlighting code", async function (assert) {
|
|
this.session.highlightJsPath =
|
|
"/assets/highlightjs/highlight-test-bundle.min.js";
|
|
this.set("code", "def test; end");
|
|
|
|
await render(hbs`<HighlightedCode @lang="ruby" @code={{this.code}} />`);
|
|
|
|
assert.strictEqual(
|
|
query("code.language-ruby.hljs .hljs-keyword").innerText.trim(),
|
|
"def"
|
|
);
|
|
});
|
|
|
|
test("large code blocks are not highlighted", async function (assert) {
|
|
this.session.highlightJsPath =
|
|
"/assets/highlightjs/highlight-test-bundle.min.js";
|
|
this.set("code", LONG_CODE_BLOCK);
|
|
|
|
await render(hbs`<HighlightedCode @lang="ruby" @code={{this.code}} />`);
|
|
|
|
assert.strictEqual(query("code").innerText.trim(), LONG_CODE_BLOCK.trim());
|
|
});
|
|
});
|