82 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | var assert = require('assert'); | ||
|  | var event = require('../lib/event.js'); | ||
|  | 
 | ||
|  | describe('event', function () { | ||
|  |     describe('outputParser', function () { | ||
|  |         it('should parse basic event output object', function () { | ||
|  |              | ||
|  |             // given
 | ||
|  |             var output = { | ||
|  |                 "address":"0x78dfc5983baecf65f73e3de3a96cee24e6b7981e", | ||
|  |                 "data":"0x000000000000000000000000000000000000000000000000000000000000004b", | ||
|  |                 "number":2, | ||
|  |                 "topic":[ | ||
|  |                     "0x6e61ef44ac2747ff8b84d353a908eb8bd5c3fb118334d57698c5cfc7041196ad", | ||
|  |                     "0x0000000000000000000000000000000000000000000000000000000000000001" | ||
|  |                 ] | ||
|  |             }; | ||
|  | 
 | ||
|  |             var e = { | ||
|  |                 name: 'Event', | ||
|  |                 inputs: [{"name":"a","type":"bool","indexed":true},{"name":"b","type":"uint256","indexed":false}] | ||
|  |             }; | ||
|  | 
 | ||
|  |             // when 
 | ||
|  |             var impl = event.outputParser(e); | ||
|  |             var result = impl(output); | ||
|  | 
 | ||
|  |             // then
 | ||
|  |             assert.equal(result.event, 'Event'); | ||
|  |             assert.equal(result.number, 2); | ||
|  |             assert.equal(Object.keys(result.args).length, 2); | ||
|  |             assert.equal(result.args.a, true); | ||
|  |             assert.equal(result.args.b, 75); | ||
|  |         });  | ||
|  | 
 | ||
|  |         it('should parse event output object arguments in correct order', function () { | ||
|  |              | ||
|  |             // given
 | ||
|  |             var output = { | ||
|  |                 "address":"0x78dfc5983baecf65f73e3de3a96cee24e6b7981e", | ||
|  |                 "data": "0x" +  | ||
|  |                     "000000000000000000000000000000000000000000000000000000000000004b" +  | ||
|  |                     "000000000000000000000000000000000000000000000000000000000000004c" + | ||
|  |                     "0000000000000000000000000000000000000000000000000000000000000001", | ||
|  |                 "number":3, | ||
|  |                 "topic":[ | ||
|  |                     "0x6e61ef44ac2747ff8b84d353a908eb8bd5c3fb118334d57698c5cfc7041196ad", | ||
|  |                     "0x0000000000000000000000000000000000000000000000000000000000000001", | ||
|  |                     "0x0000000000000000000000000000000000000000000000000000000000000005" | ||
|  |                 ] | ||
|  |             }; | ||
|  |              | ||
|  |             var e = { | ||
|  |                 name: 'Event2', | ||
|  |                 inputs: [ | ||
|  |                     {"name":"a","type":"bool","indexed":true}, | ||
|  |                     {"name":"b","type":"int","indexed":false}, | ||
|  |                     {"name":"c","type":"int","indexed":false}, | ||
|  |                     {"name":"d","type":"int","indexed":true}, | ||
|  |                     {"name":"e","type":"bool","indexed":false} | ||
|  |                 ] | ||
|  |             }; | ||
|  |              | ||
|  |             // when 
 | ||
|  |             var impl = event.outputParser(e); | ||
|  |             var result = impl(output); | ||
|  |              | ||
|  |             // then
 | ||
|  |             assert.equal(result.event, 'Event2'); | ||
|  |             assert.equal(result.number, 3); | ||
|  |             assert.equal(Object.keys(result.args).length, 5); | ||
|  |             assert.equal(result.args.a, true); | ||
|  |             assert.equal(result.args.b, 75); | ||
|  |             assert.equal(result.args.c, 76); | ||
|  |             assert.equal(result.args.d, 5); | ||
|  |             assert.equal(result.args.e, true); | ||
|  | 
 | ||
|  |         }); | ||
|  |     }); | ||
|  | }); | ||
|  | 
 |