         future.fail { _ in failCalled = true }
         
         // Wait for async call dispatched on main queue
-        waitUntil { done in done() }
+        // Wait for async call dispatched on main queue
+        CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1, false)
 
         expect(future.state) == FutureState.Resolved
         expect(failCalled) == false

      }
      
      context("when a future fails") {
        future {
        
        }
        
        it("it rejects up to the parent") {
          let future = Future<Int>()
          

        }
      }
      
      it("properly awaits and resolve values") {
        let posts = try? await <- values <- login("foo", p: "bar")
        expect(posts) == ["bar", "foo"]
      }
