honkit
Version:
HonKit is building beautiful books using Markdown.
49 lines (48 loc) • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const html_1 = require("@honkit/html");
const promise_1 = __importDefault(require("../../../utils/promise"));
const highlightCode_1 = __importDefault(require("../highlightCode"));
describe("highlightCode", () => {
function doHighlight(lang, code) {
return {
text: `${lang || ""}$${code}`
};
}
function doHighlightAsync(lang, code) {
return (0, promise_1.default)().then(() => {
return doHighlight(lang, code);
});
}
test("should call it for normal code element", () => {
const $ = (0, html_1.loadHtml)("<p>This is a <code>test</code></p>");
return (0, highlightCode_1.default)(doHighlight, $).then(() => {
const $code = $("code");
expect($code.text()).toBe("$test");
});
});
test("should call it for markdown code block", () => {
const $ = (0, html_1.loadHtml)("<pre><code class=\"lang-js\">test</code></pre>");
return (0, highlightCode_1.default)(doHighlight, $).then(() => {
const $code = $("code");
expect($code.text()).toBe("js$test");
});
});
test("should call it for asciidoc code block", () => {
const $ = (0, html_1.loadHtml)("<pre><code class=\"language-python\">test</code></pre>");
return (0, highlightCode_1.default)(doHighlight, $).then(() => {
const $code = $("code");
expect($code.text()).toBe("python$test");
});
});
test("should accept async highlighter", () => {
const $ = (0, html_1.loadHtml)("<pre><code class=\"language-python\">test</code></pre>");
return (0, highlightCode_1.default)(doHighlightAsync, $).then(() => {
const $code = $("code");
expect($code.text()).toBe("python$test");
});
});
});