 
                 promise.then [], [failFn1]
                 promise.then [successFn], [failFn2]
-                rejectFn()
-
-                expect(failFn1.called).toBe true
-                expect(failFn2.called).toBe true
+
+                runs rejectFn
+                waits 1
+                runs ->
+                    expect(failFn1.called).toBe true
+                    expect(failFn2.called).toBe true
 
         describe 'provides done', ->
             beforeEach ->

                successFn = callTrackingFn()

                promise.done [successFn]
                resolveFn()

                expect(successFn.called).toBe true

        describe 'provides fail', ->
            beforeEach ->


                promise.then [successFn1]
                promise.then [successFn2], [failFn]

                runs resolveFn
                waits 1
                runs ->
                    expect(successFn1.called).toBe true
                    expect(successFn2.called).toBe true

            it 'should register failure callbacks', ->
                successFn = callTrackingFn()
