                 failFn = callTrackingFn()
 
                 promise.fail [failFn]
-                rejectFn()
-
-                expect(failFn.called).toBe true
+
+                runs rejectFn
+                waits 1
+                runs ->
+                    expect(failFn.called).toBe true
     
         describe 'provides isRejected', ->
             beforeEach ->

                expect(promise.isRejected()).toBe false

            it 'should return false if resolved', ->
                resolveFn()
                expect(promise.isRejected()).toBe false

            it 'should return true if rejected', ->
                rejectFn()
                expect(promise.isRejected()).toBe true
        
        describe 'provides isResolved', ->
            beforeEach ->

                expect(promise.isResolved()).toBe false

            it 'should return false if rejected', ->
                runs rejectFn
                waits 1
                runs ->
                    expect(promise.isResolved()).toBe false

            it 'should return true if resolved', ->
                runs resolveFn
                waits 1
                runs ->
                    expect(promise.isResolved()).toBe true
exports.describePromise = describePromise

describePromise ->
