aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-28 21:39:10 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-28 21:39:10 +0800
commit2544d2c952dc003d62bdb99a554b3fa576b202c5 (patch)
tree8af0e15b3b26b3a107a32d6a406054c0614a1e52
parentea7c2fc673db31f96583e4712aa0fb78f5d709eb (diff)
downloadgo-tangerine-2544d2c952dc003d62bdb99a554b3fa576b202c5.tar.gz
go-tangerine-2544d2c952dc003d62bdb99a554b3fa576b202c5.tar.zst
go-tangerine-2544d2c952dc003d62bdb99a554b3fa576b202c5.zip
tests for abi.filters
-rw-r--r--lib/abi.js11
-rw-r--r--test/abi.filters.js49
2 files changed, 59 insertions, 1 deletions
diff --git a/lib/abi.js b/lib/abi.js
index a0752647f..a0c862593 100644
--- a/lib/abi.js
+++ b/lib/abi.js
@@ -73,6 +73,14 @@ var filterFunctions = function (json) {
});
};
+/// Filters all events form input abi
+/// @returns abi array with filtered objects of type 'event'
+var filterEvents = function (json) {
+ return json.filter(function (current) {
+ return current.type === 'event';
+ });
+};
+
/// @param string string to be padded
/// @param number of characters that result string should have
/// @param sign, by default 0
@@ -414,6 +422,7 @@ module.exports = {
methodDisplayName: methodDisplayName,
methodTypeName: methodTypeName,
getMethodWithName: getMethodWithName,
- filterFunctions: filterFunctions
+ filterFunctions: filterFunctions,
+ filterEvents: filterEvents
};
diff --git a/test/abi.filters.js b/test/abi.filters.js
new file mode 100644
index 000000000..42385fd2a
--- /dev/null
+++ b/test/abi.filters.js
@@ -0,0 +1,49 @@
+var assert = require('assert');
+var abi = require('../lib/abi.js');
+
+describe('abi', function() {
+ it('should filter functions and events from input array properly', function () {
+
+ // given
+ var description = [{
+ "name": "test",
+ "type": "function",
+ "inputs": [{
+ "name": "a",
+ "type": "uint256"
+ }
+ ],
+ "outputs": [
+ {
+ "name": "d",
+ "type": "uint256"
+ }
+ ],
+ }, {
+ "name": "test2",
+ "type": "event",
+ "inputs": [{
+ "name": "a",
+ "type": "uint256"
+ }
+ ],
+ "outputs": [
+ {
+ "name": "d",
+ "type": "uint256"
+ }
+ ]
+ }];
+
+ // when
+ var events = abi.filterEvents(description);
+ var functions = abi.filterFunctions(description);
+
+ // then
+ assert.equal(events.length, 1);
+ assert.equal(events[0].name, 'test2');
+ assert.equal(functions.length, 1);
+ assert.equal(functions[0].name, 'test');
+
+ });
+});