solidity-docgen
Version:
Solidity API documentation automatic generator.
48 lines • 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 ava_1 = __importDefault(require("ava"));
const fs_1 = __importDefault(require("promisified/fs"));
const child_process_1 = __importDefault(require("child_process"));
const events_1 = __importDefault(require("events"));
for (const f of fs_1.default.readdirSync('fixtures')) {
testFixture(f);
}
function testFixture(num) {
ava_1.default(`fixture ${num}`, async (t) => {
await cleanFixtureOutput(num);
const templates = await fs_1.default.access(`fixtures/${num}/templates`, fs_1.default.constants.F_OK)
.then(() => ['--templates', `fixtures/${num}/templates`], () => []);
const helpers = await fs_1.default.access(`fixtures/${num}/helpers.js`, fs_1.default.constants.F_OK)
.then(() => ['--helpers', `fixtures/${num}/helpers.js`], () => []);
const solc = await fs_1.default.access(`fixtures/${num}/solc`, fs_1.default.constants.F_OK)
.then(async () => ['--solc-module', (await fs_1.default.readFile(`fixtures/${num}/solc`, 'utf8')).trim()], () => []);
const child = child_process_1.default.fork(require.resolve('./cli'), [
'--input', `fixtures/${num}/input`,
'--output', `fixtures/${num}/output`,
...templates,
...helpers,
...solc,
'--output-structure', 'single',
]);
await events_1.default.once(child, 'exit');
const output = await fs_1.default.readFile(`fixtures/${num}/output/index.md`, 'utf8');
t.snapshot(output);
});
}
async function cleanFixtureOutput(num) {
const outputPath = `fixtures/${num}/output`;
try {
await fs_1.default.access(outputPath);
}
catch (e) {
return;
}
for (const e of await fs_1.default.readdir(`fixtures/${num}/output`)) {
await fs_1.default.unlink(`fixtures/${num}/output/${e}`);
}
await fs_1.default.rmdir(`fixtures/${num}/output`);
}
//# sourceMappingURL=cli.test.js.map
;