honkit
Version:
HonKit is building beautiful books using Markdown.
91 lines (90 loc) • 4.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const templateEngine_1 = __importDefault(require("../../models/templateEngine"));
const render_1 = __importDefault(require("../render"));
const conrefsLoader_1 = __importDefault(require("../conrefsLoader"));
describe("ConrefsLoader", () => {
const dirName = `${__dirname}/`;
const fileName = path_1.default.join(dirName, "test.md");
describe("Git", () => {
const engine = new templateEngine_1.default({
// @ts-expect-error: Expected 0 arguments, but got 1.
loader: new conrefsLoader_1.default(dirName),
});
test("should include content from git", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "git+https://gist.github.com/69ea4542e4c8967d2fa7.git/test.md" %}').then((out) => {
expect(out.getContent()).toBe("Hello from git");
});
}, 60 * 1000);
test("should handle deep inclusion (1)", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "git+https://gist.github.com/69ea4542e4c8967d2fa7.git/test2.md" %}').then((out) => {
expect(out.getContent()).toBe("First Hello. Hello from git");
});
}, 60 * 1000);
test("should handle deep inclusion (2)", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "git+https://gist.github.com/69ea4542e4c8967d2fa7.git/test3.md" %}').then((out) => {
expect(out.getContent()).toBe("First Hello. Hello from git");
});
}, 60 * 1000);
});
describe("Local", () => {
const engine = new templateEngine_1.default({
// @ts-expect-error: Expected 0 arguments, but got 1.
loader: new conrefsLoader_1.default(dirName),
});
describe("Relative", () => {
test("should resolve basic relative filepath", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "include.md" %}').then((out) => {
expect(out.getContent()).toBe("Hello World");
});
});
test("should resolve basic parent filepath", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, path_1.default.join(dirName, "hello/test.md"), '{% include "../include.md" %}').then((out) => {
expect(out.getContent()).toBe("Hello World");
});
});
});
describe("Absolute", () => {
test("should resolve absolute filepath", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "/include.md" %}').then((out) => {
expect(out.getContent()).toBe("Hello World");
});
});
test("should resolve absolute filepath when in a directory", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, path_1.default.join(dirName, "hello/test.md"), '{% include "/include.md" %}').then((out) => {
expect(out.getContent()).toBe("Hello World");
});
});
});
});
describe("transform", () => {
function transform(filePath, source) {
expect(typeof filePath).toBe("string");
expect(typeof source).toBe("string");
expect(filePath).toBe(path_1.default.resolve(__dirname, "include.md"));
expect(source).toBe("Hello World");
return `test-${source}-endtest`;
}
const engine = new templateEngine_1.default({
// @ts-expect-error: Expected 0 arguments, but got 1.
loader: new conrefsLoader_1.default(dirName, transform),
});
test("should transform included content", () => {
// @ts-expect-error ts-migrate(2554) FIXME: Expected 4 arguments, but got 3.
return (0, render_1.default)(engine, fileName, '{% include "include.md" %}').then((out) => {
expect(out.getContent()).toBe("test-Hello World-endtest");
});
});
});
});