dokkie
Version:
Create good looking documentation from your Readme
136 lines • 7.06 kB
JavaScript
;
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