forwarder
Version:
Forwarding of messages to different objects (mostly properties of the receiver)
39 lines (31 loc) • 1.06 kB
JavaScript
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'] );
});
});