         @sut.once 'message', @onMessage
         @sut.subscribe 'hubris', ['sent'], undefined, =>
           @sut.unsubscribe 'hubris', ['sent'], =>
-            @redis.publish 'test:sent:hubris', JSON.stringify(that: 'would never happen to me!'), =>
-              done()
+            @redis.publish 'test:sent:hubris', JSON.stringify(that: 'would never happen to me!'), done
 
       it 'should not get a message', ->
         expect(@onMessage).not.to.have.been.called

        @sut.once 'message', @onMessage
        @sut.subscribe 'apple', ['received'], undefined, =>
          @sut.unsubscribe 'apple', ['received'], =>
            @redis.publish 'test:received:apple', JSON.stringify(dehydration: 'WATER you DOING?'), =>
              done()

      it 'should not get a message', ->
        expect(@onMessage).not.to.have.been.called


      describe 'when given the same string', ->
        beforeEach (done) ->
          @sut.once 'message', => done()
          message = devices: ['apple'], topic: 'pear', payload: 'hi'
          @redis.publish 'test:received:apple', JSON.stringify(message)

        it 'should emit the message', ->
          expect(@onMessage).to.have.been.called

      describe 'when given one more character', ->
        beforeEach (done) ->
          @sut.once 'message', => done()
          message = devices: ['apple'], topic: 'pears', payload: 'hi'
          @redis.publish 'test:received:apple', JSON.stringify(message)

        it 'should emit the message', ->
          expect(@onMessage).to.have.been.called

      describe 'when given a longer string', ->
        beforeEach (done) ->
          @sut.once 'message', => done()
          message = devices: ['apple'], topic: 'pearson', payload: 'hi'
          @redis.publish 'test:received:apple', JSON.stringify(message)

        it 'should emit the message', ->
          expect(@onMessage).to.have.been.called

      describe 'when given a different string', ->
        beforeEach ->
          message = devices: ['apple'], topic: 'paer', payload: 'hi'
          @redis.publish 'test:received:apple', JSON.stringify(message)

        beforeEach (done) ->
          setTimeout done, 100

        it 'should not emit the message', ->
          expect(@onMessage).not.to.have.been.called
