forwarder
Version:
Forwarding of messages to different objects (mostly properties of the receiver)
31 lines (23 loc) • 777 B
text/coffeescript
{ expect } = require "chai"
{ forward } = require "../src/forwarder"
_ = require "underscore"
class F
constructor: ->
= "no name so far"
forward @, 'split', to: "name"
forward @, 'seperate', to: 'name', as: 'split'
forward @, 'splitByOes', to: 'name', as: 'split', with: ['o']
describe "forwarder", ->
obj = new F()
it "forwards", ->
expect( obj.split ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "forwards with translations", ->
expect( obj.seperate ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "raises an error for unforwarded messages", ->
expect(
-> obj.undefinedMethod()
).to.throw TypeError
it "sets arguments", ->
expect(
obj.splitByOes()
).to.deep.equal ['n', ' name s', ' far']