aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorF. Eugene Aumson <gene@aumson.org>2018-09-14 02:25:54 +0800
committerF. Eugene Aumson <gene@aumson.org>2018-09-18 07:31:37 +0800
commit4ade674ada7596f1a7c5d0113815c5964e82db0f (patch)
tree0089c955d866070a7f7e393032dba30d6673ddc8
parent401ef2edef50a73ec387d95ac9998f9badb4b34a (diff)
downloaddexon-sol-tools-4ade674ada7596f1a7c5d0113815c5964e82db0f.tar.gz
dexon-sol-tools-4ade674ada7596f1a7c5d0113815c5964e82db0f.tar.zst
dexon-sol-tools-4ade674ada7596f1a7c5d0113815c5964e82db0f.zip
test multiple return values from a solidity method
-rw-r--r--packages/sol-doc/test/fixtures/contracts/MultipleReturnValues.sol7
-rw-r--r--packages/sol-doc/test/solidity_doc_generator_test.ts20
2 files changed, 27 insertions, 0 deletions
diff --git a/packages/sol-doc/test/fixtures/contracts/MultipleReturnValues.sol b/packages/sol-doc/test/fixtures/contracts/MultipleReturnValues.sol
new file mode 100644
index 000000000..1e898622c
--- /dev/null
+++ b/packages/sol-doc/test/fixtures/contracts/MultipleReturnValues.sol
@@ -0,0 +1,7 @@
+pragma solidity ^0.4.24;
+
+contract MultipleReturnValues {
+ function methodWithMultipleReturnValues() public pure returns(int, int) {
+ return (0, 0);
+ }
+}
diff --git a/packages/sol-doc/test/solidity_doc_generator_test.ts b/packages/sol-doc/test/solidity_doc_generator_test.ts
index 896690ce6..5004b1a90 100644
--- a/packages/sol-doc/test/solidity_doc_generator_test.ts
+++ b/packages/sol-doc/test/solidity_doc_generator_test.ts
@@ -153,6 +153,26 @@ describe('#SolidityDocGenerator', () => {
expect(methodDoc.comment).to.equal('methodWithSolhintDirective @dev');
});
});
+ it('should document a method that returns multiple values', async () => {
+ const doc = await generateSolDocAsync(`${__dirname}/../../test/fixtures/contracts`, ['MultipleReturnValues']);
+ expect(doc.MultipleReturnValues).to.not.be.undefined();
+ expect(doc.MultipleReturnValues.methods).to.not.be.undefined();
+ let methodWithMultipleReturnValues: SolidityMethod | undefined;
+ for (const method of doc.MultipleReturnValues.methods) {
+ if (method.name === 'methodWithMultipleReturnValues') {
+ methodWithMultipleReturnValues = method;
+ }
+ }
+ if (_.isUndefined(methodWithMultipleReturnValues)) {
+ throw new Error('method should not be undefined');
+ }
+ const returnType = methodWithMultipleReturnValues.returnType;
+ expect(returnType.typeDocType).to.equal('tuple');
+ if (_.isUndefined(returnType.tupleElements)) {
+ throw new Error('returnType.tupleElements should not be undefined');
+ }
+ expect(returnType.tupleElements.length).to.equal(2);
+ });
});
function verifyTokenTransferProxyABIIsDocumented(doc: DocAgnosticFormat, contractName: string): void {