UNPKG

forwarder

Version:

Forwarding of messages to different objects (mostly properties of the receiver)

39 lines (31 loc) 1.06 kB
expect = require('chai').expect forward = require('../src/forwarder').forward describe( "forwarder", function(){ obj = { name: "no name so far" } it( "forwards", function(){ forward( obj, 'split', {to: 'name'}); expect( obj.split( ' ' )).to.deep.equal( ['no', 'name', 'so', 'far'] ) }); it( "forwards with translations", function(){ forward( obj, 'seperate', {to: 'name', as: 'split'} ); expect( obj.seperate( ' ' )).to.deep.equal( ['no', 'name', 'so', 'far'] ); }); it( "raises an error for unforwarded messages", function(){ expect( function(){ obj.undefinedMethod(); } ).to.throw( TypeError ); }); it( "raises an error if to: is missing", function(){ expect( function(){ forward( obj, 'whatever', {as: 'other'} ); } ).to.throw( TypeError, "missing keyword arg to:" ); }); it( "sets arguments", function(){ forward( obj, 'splitByOes', {to: 'name', as: 'split', with: ['o']}); expect( obj.splitByOes() ).to.deep.equal( ['n', ' name s', ' far'] ); }); });