UNPKG

solidity-docgen

Version:

Solidity API documentation automatic generator.

74 lines 2.59 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 solc_1 = require("./solc"); const solidity_1 = require("./solidity"); function buildSource(solcOutput) { return new solidity_1.SoliditySource('', solcOutput, c => c.name); } ava_1.default('no files', t => { const solcOutput = new solc_1.SolcOutputBuilder(); const source = buildSource(solcOutput); t.is(source.files.length, 0); t.is(source.contracts.length, 0); }); ava_1.default('one empty file', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol'); const source = buildSource(solcOutput); t.is(source.files.length, 1); }); ava_1.default('one contract', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol') .contract('Foo'); const source = buildSource(solcOutput); t.is(source.contracts.length, 1); }); ava_1.default('one own function', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol') .contract('Foo') .function('test'); const source = buildSource(solcOutput); const foo = source.contracts[0]; t.is(foo.functions.length, 1); }); ava_1.default('one inherited function', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol') .contract('Foo') .function('test') .contract('Bar', 'Foo'); const source = buildSource(solcOutput); const bar = source.contracts[1]; t.is(bar.functions.length, 1); }); ava_1.default('one multiply inherited function', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol') .contract('Foo') .function('test') .contract('FooFlavor') .function('test') .contract('Bar', 'Foo', 'FooFlavor'); const source = buildSource(solcOutput); const bar = source.contracts[2]; t.is(bar.name, 'Bar'); t.is(bar.functions.length, 1); }); ava_1.default('two inherited functions with name overloading', t => { const solcOutput = new solc_1.SolcOutputBuilder() .file('Foo.sol') .contract('Foo') .function('test', 'uint256') .function('test', 'string') .contract('FooFlavor', 'Foo'); const source = buildSource(solcOutput); const foof = source.contracts[1]; t.is(foof.functions.length, 2); }); //# sourceMappingURL=solidity.test.js.map