UNPKG

honkit

Version:

HonKit is building beautiful books using Markdown.

78 lines (77 loc) 3.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const book_1 = __importDefault(require("../../models/book")); const mock_1 = __importDefault(require("../../fs/mock")); const parseBook_1 = __importDefault(require("../parseBook")); describe("parseBook", () => { test("should parse multilingual book", () => { const fs = (0, mock_1.default)({ "LANGS.md": "# Languages\n\n* [en](en)\n* [fr](fr)", en: { "README.md": "Hello", }, fr: { "README.md": "Bonjour", }, }); const book = book_1.default.createForFS(fs); return (0, parseBook_1.default)(book).then((resultBook) => { const languages = resultBook.getLanguages(); const books = resultBook.getBooks(); expect(resultBook.isMultilingual()).toBe(true); expect(languages.getList().size).toBe(2); expect(books.size).toBe(2); }); }); test("should extend configuration for multilingual book", () => { const fs = (0, mock_1.default)({ "LANGS.md": "# Languages\n\n* [en](en)\n* [fr](fr)", "book.json": '{ "title": "Test", "author": "HonKit" }', en: { "README.md": "Hello", "book.json": '{ "title": "Test EN" }', }, fr: { "README.md": "Bonjour", }, }); const book = book_1.default.createForFS(fs); return (0, parseBook_1.default)(book).then((resultBook) => { const books = resultBook.getBooks(); expect(resultBook.isMultilingual()).toBe(true); expect(books.size).toBe(2); const en = books.get("en"); const fr = books.get("fr"); const enConfig = en.getConfig(); const frConfig = fr.getConfig(); expect(enConfig.getValue("title")).toBe("Test EN"); expect(enConfig.getValue("author")).toBe("HonKit"); expect(frConfig.getValue("title")).toBe("Test"); expect(frConfig.getValue("author")).toBe("HonKit"); }); }); test("should parse book in a directory", () => { const fs = (0, mock_1.default)({ "book.json": JSON.stringify({ root: "./test", }), test: { "README.md": "Hello World", "SUMMARY.md": "# Summary\n\n* [Page](page.md)\n", "page.md": "Page", }, }); const book = book_1.default.createForFS(fs); return (0, parseBook_1.default)(book).then((resultBook) => { const readme = resultBook.getReadme(); const summary = resultBook.getSummary(); const articles = summary.getArticlesAsList(); expect(summary.getFile().exists()).toBe(true); expect(readme.getFile().exists()).toBe(true); expect(articles.size).toBe(2); }); }); });