honkit
Version:
HonKit is building beautiful books using Markdown.
58 lines (57 loc) • 2.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const generateMock_1 = require("../testing/generateMock");
const immutable_1 = __importDefault(require("immutable"));
const generatePages_1 = __importDefault(require("../generatePages"));
const plugin_1 = __importDefault(require("../../models/plugin"));
const json_1 = __importDefault(require("../json"));
const createOutputWithPlugin = async ({ Generator, plugin, files }) => {
const { output } = await (0, generateMock_1.generateMockBook)(Generator, files);
// add plugin
return output.merge({
plugins: [plugin],
});
};
describe("plugin-hooks", function () {
it(`should be called "page" and "page:before" when generate each pages`, async () => {
let onPageBeforeCount = 0;
let onPageCount = 0;
const plugin = new plugin_1.default({
name: "testplugin",
version: "*",
path: "test.js",
package: immutable_1.default.fromJS({
name: "testplugin",
}),
content: immutable_1.default.fromJS({
hooks: {
"page:before": function (page) {
onPageBeforeCount++;
return page;
},
page: function (page) {
onPageCount++;
return page;
},
},
}),
});
const output = await createOutputWithPlugin({
Generator: json_1.default,
plugin,
files: {
"README.md": "Hello World",
},
});
// call twice
await (0, generatePages_1.default)(json_1.default, output);
await (0, generatePages_1.default)(json_1.default, output);
// assert
assert_1.default.strictEqual(onPageBeforeCount, 2);
assert_1.default.strictEqual(onPageCount, 2);
});
});