solidity-docgen
Version:
Solidity API documentation automatic generator.
74 lines • 2.59 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 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