         done()
       @robot.receive testMessage
 
-    it 'calls multiple matching listeners', (done) ->
+    it 'calls multiple matching listeners', ->
       testMessage = new TextMessage(@user, 'message123')
 
       listenersCalled = 0
       listenerCallback = (response) ->
         expect(response.message).to.equal(testMessage)
         listenersCalled++
-        if listenersCalled == 2
-          done()
-
-      @robot.hear /^message123$/, listenerCallback
-      @robot.hear /^message123$/, listenerCallback
-
-      @robot.receive testMessage
+
+      @robot.hear /^message123$/, listenerCallback
+      @robot.hear /^message123$/, listenerCallback
+
+      @robot.receive testMessage
+
+      expect(listenersCalled).to.equal(2)
 
     it 'calls the catch-all listener if no listeners match', (done) ->
       testMessage = new TextMessage(@user, 'message123')


        expect(listenerSpy.call).to.not.have.been.called

  describe 'Message Processing', ->
    it 'calls a matching listener', (done) ->
      testMessage = new TextMessage(@user, 'message123')

        # the original message and once with a CatchAll message
        expect(listener.call).to.have.callCount(8)

      it 'sends a CatchAllMessage if no listener matches', ->
        # Testing for recursion with a new CatchAllMessage that wraps the
        # original message

        testMessage = new TextMessage(@user, 'message123')
        @robot.listeners = []

        # Replace @robot.receive so we can catch when the functions recurses
        oldReceive = @robot.receive
        @robot.receive = (message) ->
          expect(message).to.be.instanceof(CatchAllMessage)
          expect(message.message).to.be.equal(testMessage)
        sinon.spy(@robot, 'receive')

        # Call the original receive method that we want to test
        oldReceive.call @robot, testMessage

        # Ensure the function recursed
        expect(@robot.receive).to.have.been.called

      it 'does not trigger a CatchAllMessage if a listener matches', ->
        testMessage = new TextMessage(@user, 'message123')
