     
         let promiseA = someFunction()
         let promiseB = someFunction()
-        await(promiseA, promiseB)
+        
+        let awaitExpectation = self.expectationWithDescription("await on some background queue")
+        
+        onBackgroundQueue {
+            await(promiseA, promiseB)
+            awaitExpectation.fulfill()
+        }()
+        
+         self.waitForExpectationsWithTimeout(1, handler: nil)
         
         switch (promiseA.state, promiseB.state) {
         case (.Fulfilled(let valueA), .Fulfilled(let valueB)):

        }
        let future = somefunction()
        
        await(future)
        
        if case .Fulfilled(let value) = future.state {
            XCTAssertEqual(value, "done")


    
    func testAwaitMultiplePromisesDelayed() {
        let someBackgroundfunctionA = onBackgroundQueue(after: 0.1)({ () -> String in
            return "doneA"
        })
        
        let someBackgroundfunctionB = onBackgroundQueue(after: 0.2)({ () -> String in
            return "doneB"
        })
        
        let promiseA = someBackgroundfunctionA()
        let promiseB = someBackgroundfunctionB()
        
        let awaitExpectation = self.expectationWithDescription("await on some background queue")
        
        onBackgroundQueue {
            await(promiseA, promiseB)
            awaitExpectation.fulfill()
        }()
        
        self.waitForExpectationsWithTimeout(1, handler: nil)
        
        switch (promiseA.state, promiseB.state) {
        case (.Fulfilled(let valueA), .Fulfilled(let valueB)):
