solidity-docgen
Version:
Documentation generator for Solidity smart contracts.
52 lines • 1.84 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const test_1 = __importDefault(require("./utils/test"));
const path_1 = __importDefault(require("path"));
const site_1 = require("./site");
/**
* @param files The name of the Solidity file whose contents should be considered.
*/
function testPages(title, opts, expected) {
(0, test_1.default)(title, t => {
const { files, assign, exclude = [] } = opts;
const cfg = {
sourcesDir: 'test-contracts',
exclude,
pageExtension: '.md',
pages: (i, f) => files.includes(path_1.default.parse(f.absolutePath).name) ? assign(i, f, cfg) : undefined,
};
const site = (0, site_1.buildSite)(t.context.build, cfg);
const pages = site.pages.map(p => ({
id: p.id,
items: p.items.map(i => i.name),
})).sort((a, b) => a.id.localeCompare(b.id));
t.deepEqual(pages, expected);
});
}
testPages('assign to single page', {
files: ['S08_AB'],
assign: site_1.pageAssigner.single,
}, [{ id: 'index.md', items: ['A', 'B'] }]);
testPages('assign to item pages', {
files: ['S08_AB'],
assign: site_1.pageAssigner.items,
}, [
{ id: 'A.md', items: ['A'] },
{ id: 'B.md', items: ['B'] },
]);
testPages('assign to file pages', {
files: ['S08_AB', 'S08_C'],
assign: site_1.pageAssigner.files,
}, [
{ id: 'S08_AB.md', items: ['A', 'B'] },
{ id: 'S08_C.md', items: ['C'] },
]);
testPages('exclude', {
files: ['S08_AB', 'S08_E0'],
exclude: ['S08_E0.sol'],
assign: site_1.pageAssigner.single,
}, [{ id: 'index.md', items: ['A', 'B'] }]);
//# sourceMappingURL=site.test.js.map