@@ -18,11 +18,13 @@ final class JetpackConnectionWebViewModelTests: XCTestCase {
1818 let authorizePolicy = await viewModel. decidePolicy ( for: authorizeURL)
1919 let finalUrl = try XCTUnwrap ( URL ( string: siteURL + " /wp-admin " ) )
2020 let completionPolicy = await viewModel. decidePolicy ( for: finalUrl)
21+ waitUntil {
22+ completionTriggered == true
23+ }
2124
2225 // Then
2326 XCTAssertEqual ( authorizePolicy, . allow)
2427 XCTAssertEqual ( completionPolicy, . cancel)
25- XCTAssertTrue ( completionTriggered)
2628 }
2729
2830 func test_dismissal_is_tracked( ) throws {
@@ -46,13 +48,21 @@ final class JetpackConnectionWebViewModelTests: XCTestCase {
4648 let analyticsProvider = MockAnalyticsProvider ( )
4749 let analytics = WooAnalytics ( analyticsProvider: analyticsProvider)
4850
51+ var completionTriggered = false
52+ let completionHandler : ( ) -> Void = {
53+ completionTriggered = true
54+ }
55+
4956 let siteURL = " https://test.com "
5057 let initialURL = try XCTUnwrap ( URL ( string: " https://jetpack.wordpress.com/jetpack.authorize/1/ " ) )
51- let viewModel = JetpackConnectionWebViewModel ( initialURL: initialURL, siteURL: siteURL, analytics: analytics, completion: { } )
58+ let viewModel = JetpackConnectionWebViewModel ( initialURL: initialURL, siteURL: siteURL, analytics: analytics, completion: completionHandler )
5259
5360 // When
5461 let finalUrl = try XCTUnwrap ( URL ( string: siteURL + " /wp-admin " ) )
5562 _ = await viewModel. decidePolicy ( for: finalUrl)
63+ waitUntil {
64+ completionTriggered == true
65+ }
5666
5767 // Then
5868 XCTAssertNotNil ( analyticsProvider. receivedEvents. first ( where: { $0 == " login_jetpack_connect_completed " } ) )
0 commit comments