UNPKG

dokkie

Version:

Create good looking documentation from your Readme

136 lines 7.06 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const steps_1 = require("../steps"); const get_files_1 = require("../steps/get-files"); const clean_1 = require("./clean"); const mock_1 = require("./mock"); const path_1 = require("path"); const { readdir, readFile } = require("fs").promises; const mockOutput = "temp/website"; const basePage = (name) => { return { ext: ".md", date: "2020-05-28T09:58:59.948Z", meta: {}, filename: "index.html", route: path_1.join(mockOutput, `${name.toLowerCase()}/index.html`), destpath: path_1.join(__dirname, "../../", mockOutput, name), data: `# ${name}\n`, html: `<h1 id="${name.toLowerCase()}">${name}</h1>\n`, title: name, }; }; const altSettingsPartials = Object.assign(Object.assign({}, mock_1.baseSettings), { output: mockOutput, layout: "website", navigation: [], files: [ Object.assign(Object.assign({}, basePage("Work")), { name: "readme", path: "/Users/someuser/dokkie/content/website/b:work/readme.md" }), Object.assign(Object.assign({}, basePage("Item1")), { name: "_item1", path: "/Users/someuser/dokkie/content/website/b:work/_item1.md" }), Object.assign(Object.assign({}, basePage("Item2")), { name: "_item2", path: "/Users/someuser/dokkie/content/website/b:work/_item2.md" }), ] }); const altSettingsSections = Object.assign(Object.assign({}, altSettingsPartials), { files: [ Object.assign(Object.assign({}, basePage("Work")), { name: "readme", path: "/Users/someuser/dokkie/content/website/b:work/readme.md" }), Object.assign(Object.assign({}, basePage("_overview")), { name: "readme", path: "/Users/someuser/dokkie/content/website/b:work/_overview/readme.md", meta: { layout: "thirds", }, data: `---\nlayout: thirds\n---\n# Overview\n` }), Object.assign(Object.assign({}, basePage("Item1")), { name: "_item1", path: "/Users/someuser/dokkie/content/website/b:work/_overview/_item1.md" }), Object.assign(Object.assign({}, basePage("Item2")), { name: "_item2", path: "/Users/someuser/dokkie/content/website/b:work/_overview/_item2.md" }), ] }); afterEach(() => clean_1.cleanup(path_1.join(__dirname, "../../", mockOutput))); describe("Website", () => { it("Build a website", () => __awaiter(void 0, void 0, void 0, function* () { try { const result = yield steps_1.filterHiddenPages(altSettingsPartials); expect(result.files.length).toBe(3); } catch (err) { throw Error(err); } })); it("Create Pages", () => __awaiter(void 0, void 0, void 0, function* () { try { yield steps_1.getLayout(altSettingsPartials).then(steps_1.createPages); const testDir = yield readdir(path_1.join(__dirname, "../../", altSettingsPartials.output)); expect(testDir.length).toBe(3); } catch (err) { throw Error(err); } })); it("Concat Partials", () => __awaiter(void 0, void 0, void 0, function* () { try { yield get_files_1.concatPartials(altSettingsPartials) .then(steps_1.getLayout) .then(steps_1.createPages); const testDir = yield readdir(path_1.join(__dirname, "../../", altSettingsPartials.output)); expect(testDir.length).toBe(1); } catch (err) { throw Error(err); } })); // Check if the sections are also take up into the page. it("Page has meta tag", () => __awaiter(void 0, void 0, void 0, function* () { try { yield steps_1.getLayout(altSettingsPartials).then(steps_1.createPages); const testDir = yield readdir(path_1.join(__dirname, "../../", altSettingsSections.output)); const testFile = yield readFile(path_1.join(__dirname, "../../", altSettingsSections.output, testDir[0], "index.html")).then((r) => r.toString()); document.body.innerHTML = testFile; expect(document.body.querySelector('meta[name="dokkie"][content="website"]')).toBeDefined(); } catch (err) { throw Error(err); } })); // Check if the sections are also take up into the page. it("Concat Sections", () => __awaiter(void 0, void 0, void 0, function* () { try { const result = yield get_files_1.concatPartials(altSettingsSections) .then(get_files_1.sectionPartials) .then(steps_1.getLayout); yield steps_1.createPages(result); const testDir = yield readdir(path_1.join(__dirname, "../../", altSettingsSections.output)); expect(testDir.length).toBe(1); } catch (err) { throw Error(err); } })); it("Concat Sections file", () => __awaiter(void 0, void 0, void 0, function* () { try { const result = yield get_files_1.concatPartials(altSettingsSections) .then(get_files_1.sectionPartials) .then(steps_1.getLayout) .then(steps_1.convertDataToHtml); yield steps_1.createPages(result); expect(result.files[0].sections[0].articles.length).toBe(2); } catch (err) { throw Error(err); } })); it("Sections have the right columns", () => __awaiter(void 0, void 0, void 0, function* () { try { const result = yield get_files_1.concatPartials(Object.assign(Object.assign({}, altSettingsSections), { logging: ["debug"] })) .then(get_files_1.sectionPartials) .then(steps_1.getLayout) .then(steps_1.convertDataToHtml); yield steps_1.createPages(result); const testFile = yield readFile(path_1.join(__dirname, "../../", altSettingsSections.output, "work/index.html")).then((r) => r.toString()); document.body.innerHTML = testFile; const sectionContainer = document.body.querySelector("main .section__container"); expect(sectionContainer.querySelector(`h1#item1`)).toBeDefined(); expect(sectionContainer.querySelector(`h1#item2`)).toBeDefined(); } catch (err) { throw Error(err); } })); }); //# sourceMappingURL=website.spec.js.map