UNPKG

solidity-docgen

Version:

Solidity API documentation automatic generator.

48 lines 2.17 kB
"use strict"; 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