Skip to content

Commit a5aa0be

Browse files
committed
Update unit tests for AuthenticationManager
1 parent ad15a55 commit a5aa0be

File tree

1 file changed

+64
-6
lines changed

1 file changed

+64
-6
lines changed

WooCommerce/WooCommerceTests/Authentication/AuthenticationManagerTests.swift

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,40 @@ final class AuthenticationManagerTests: XCTestCase {
159159
// Given
160160
let manager = AuthenticationManager()
161161
let testSite = "http://test.com"
162-
let siteInfo = WordPressComSiteInfo(remote: ["isWordPress": true, "hasJetpack": false, "urlAfterRedirects": testSite])
162+
let siteInfo = siteInfo(url: testSite,
163+
exists: true,
164+
hasWordPress: true,
165+
isWordPressCom: false,
166+
hasJetpack: false,
167+
isJetpackActive: false,
168+
isJetpackConnected: false)
169+
let wpcomCredentials = WordPressComCredentials(authToken: "abc", isJetpackLogin: false, multifactor: false, siteURL: testSite)
170+
let credentials = AuthenticatorCredentials(wpcom: wpcomCredentials, wporg: nil)
171+
let navigationController = UINavigationController()
172+
173+
// When
174+
manager.shouldPresentUsernamePasswordController(for: siteInfo, onCompletion: { _ in })
175+
manager.presentLoginEpilogue(in: navigationController, for: credentials, onDismiss: {})
176+
waitUntil {
177+
navigationController.viewControllers.isNotEmpty
178+
}
179+
180+
// Then
181+
let rootController = navigationController.viewControllers.first
182+
XCTAssertTrue(rootController is ULErrorViewController)
183+
}
184+
185+
func test_it_shows_error_upon_login_epilogue_if_the_site_has_active_jetpack_but_not_connected() {
186+
// Given
187+
let manager = AuthenticationManager()
188+
let testSite = "http://test.com"
189+
let siteInfo = siteInfo(url: testSite,
190+
exists: true,
191+
hasWordPress: true,
192+
isWordPressCom: false,
193+
hasJetpack: true,
194+
isJetpackActive: true,
195+
isJetpackConnected: false)
163196
let wpcomCredentials = WordPressComCredentials(authToken: "abc", isJetpackLogin: false, multifactor: false, siteURL: testSite)
164197
let credentials = AuthenticatorCredentials(wpcom: wpcomCredentials, wporg: nil)
165198
let navigationController = UINavigationController()
@@ -366,10 +399,28 @@ final class AuthenticationManagerTests: XCTestCase {
366399
XCTAssertTrue(topController is ULErrorViewController)
367400
}
368401

402+
func test_troubleshootSite_displays_error_screen_if_site_is_self_hosted_with_jetpack_not_connected() {
403+
// Given
404+
let navigationController = UINavigationController()
405+
let siteInfo = siteInfo(exists: true, hasWordPress: true, isWordPressCom: false, hasJetpack: true, isJetpackActive: true, isJetpackConnected: false)
406+
let storage = MockStorageManager()
407+
let manager = AuthenticationManager(storageManager: storage)
408+
409+
// When
410+
manager.troubleshootSite(siteInfo, in: navigationController)
411+
412+
// Then
413+
waitUntil {
414+
navigationController.viewControllers.isNotEmpty
415+
}
416+
let topController = navigationController.topViewController
417+
XCTAssertTrue(topController is ULErrorViewController)
418+
}
419+
369420
func test_troubleshootSite_displays_account_mismatch_screen_if_site_is_self_hosted_with_jetpack() {
370421
// Given
371422
let navigationController = UINavigationController()
372-
let siteInfo = siteInfo(exists: true, hasWordPress: true, isWordPressCom: false, hasJetpack: true)
423+
let siteInfo = siteInfo(exists: true, hasWordPress: true, isWordPressCom: false, hasJetpack: true, isJetpackActive: true, isJetpackConnected: true)
373424
let storage = MockStorageManager()
374425
let manager = AuthenticationManager(storageManager: storage)
375426

@@ -386,12 +437,19 @@ final class AuthenticationManagerTests: XCTestCase {
386437
}
387438

388439
private extension AuthenticationManagerTests {
389-
func siteInfo(exists: Bool = false, hasWordPress: Bool = false, isWordPressCom: Bool = false, hasJetpack: Bool = false) -> WordPressComSiteInfo {
390-
WordPressComSiteInfo(remote: ["exists": exists,
440+
func siteInfo(url: String = "",
441+
exists: Bool = false,
442+
hasWordPress: Bool = false,
443+
isWordPressCom: Bool = false,
444+
hasJetpack: Bool = false,
445+
isJetpackActive: Bool = false,
446+
isJetpackConnected: Bool = false) -> WordPressComSiteInfo {
447+
WordPressComSiteInfo(remote: ["urlAfterRedirects": url,
448+
"exists": exists,
391449
"isWordPress": hasWordPress,
392450
"hasJetpack": hasJetpack,
393-
"isJetpackActive": hasJetpack,
394-
"isJetpackConnected": hasJetpack,
451+
"isJetpackActive": isJetpackActive,
452+
"isJetpackConnected": isJetpackConnected,
395453
"isWordPressDotCom": isWordPressCom])
396454
}
397455
}

0 commit comments

Comments
 (0)