forwarder
Version:
Forwarding of messages to different objects (mostly properties of the receiver)
35 lines (27 loc) • 909 B
text/coffeescript
{ expect } = require "chai"
{ forward } = require "../src/forwarder"
describe "forwarder", ->
obj =
name: "no name so far"
fun: ->
a: 42
it "forwards", ->
forward obj, 'split', to: 'name'
expect( obj.split ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "forwards with translations", ->
forward obj, 'seperate', to: 'name', as: 'split'
expect( obj.seperate ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "raises an error for unforwarded messages", ->
expect(
-> obj.undefinedMethod()
).to.throw TypeError
it "raises an error if to: is missing", ->
expect(
->
forward obj, 'whatever', as: 'other'
).to.throw TypeError, "missing keyword arg to:"
it "sets arguments", ->
forward obj, 'splitByOes', to: 'name', as: 'split', with: ['o']
expect(
obj.splitByOes()
).to.deep.equal ['n', ' name s', ' far']