     s.activate()
     test.activate()
     expect(test.isActivated() and p.isActivated() and not s.isActivated()).to.equal true
+
+  it "should be possible to fetch a child by id", ->
+    expect(p.childById(s.nodeId())).to.be.an('object')
+    expect(p.childById(s.nodeId()).nodeId()).to.equal s.nodeId()
+
+  it "should be possible to fetch a descendant by id", ->
+    expect(p.descendantById(s.nodeId())).to.be.an('object')
+    expect(p.descendantById(s.nodeId()).nodeId()).to.equal s.nodeId()
 
 describe "Exo.Spine.Controller as a parent and child", ->
   p = c = test = null

    test.removeChild(test.children()[0])
    expect(test.children().length).to.equal 4

  it 'should throw "Exo: Incompatible object" when invalid objects are passed to node.addChild'

  it 'should trigger "onActivated" and pass itself when activated', (done)->

  beforeEach ->
    test = new Exo.Spine.Controller

  it 'should be possible to set nodeId', ->
    test.setNodeId('banana')
    expect(test.nodeId()).to.equal 'banana'

  it 'should be deactivated', ->
    expect(test.isActivated()).to.equal false

