         subscribeForPeekAndPopStateChanges(
             onPeekAndPopStateChange: { viewController, peekAndPopState in
                 callbackCounter += 1
+                expectation.fulfill()
                 
                 if callbackCounter == 2 {
                     XCTAssert(viewController === self.peekViewController)
                     XCTAssert(peekAndPopState == .cancelled)
-                    expectation.fulfill()
                 }
             }
         )

    func testPeekAndPopUtility_notifiesPeekAndPopStateObservers_ifPeekGetsCancelledByUserOnOnscreenRegisteredViewController() {
        // Given
        let expectation = self.expectation()
        
        bindSourceViewControllerToWindow()
        
        registerSourceViewControllerForPreviewing(
            onPeek: { _ in
                self.invokeTransitionToPeekViewController()
            }
        )
        
        var callbackCounter = 0
        
        subscribeForPeekAndPopStateChanges(
            onPeekAndPopStateChange: { viewController, peekAndPopState in
                callbackCounter += 1
                
                if callbackCounter == 2 {
                    XCTAssert(viewController === self.peekViewController)
                    XCTAssert(peekAndPopState == .cancelled)
                    expectation.fulfill()
                }
            }
        )

    func testPeekAndPopUtility_notifiesPeekAndPopStateObservers_ifPeekGetsInterruptedWithAnotherTransitionOnOnscreenRegisteredViewController() {
        // Given
        let expectation = self.expectation()
        expectation.expectedFulfillmentCount = 2
        
        bindSourceViewControllerToWindow()
        
