UNPKG

honkit

Version:

HonKit is building beautiful books using Markdown.

91 lines (90 loc) 4.91 kB
"use strict"; 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"); }); }); }); });