honkit
Version:
HonKit is building beautiful books using Markdown.
78 lines (77 loc) • 3.16 kB
JavaScript
;
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);
});
});
});