Skip to content

Commit 63a3e84

Browse files
Merge pull request #7641 from woocommerce/feat/7547-store-picker-help
Custom help content for "Store picker" screen
2 parents 3183b58 + a91fe1a commit 63a3e84

File tree

5 files changed

+38
-7
lines changed

5 files changed

+38
-7
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
10.4
44
-----
5-
5+
- [*] Help center: Added help center web page with FAQs for "Pick a WooCommerce Store" screen. [https://github.com/woocommerce/woocommerce-ios/pull/7641]
66

77
10.3
88
-----

WooCommerce/Classes/Authentication/Epilogue/StorePickerViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ private extension StorePickerViewController {
289289
}
290290

291291
func presentHelp() {
292-
ServiceLocator.authenticationManager.presentSupport(from: self, sourceTag: .generalLogin)
292+
ServiceLocator.authenticationManager.presentSupport(from: self, screen: .storePicker)
293293
}
294294
}
295295

WooCommerce/Classes/Model/CustomHelpCenterContent.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ extension CustomHelpCenterContent {
5959
/// Jetpack required error screen presented using `JetpackErrorViewModel`
6060
///
6161
case jetpackRequired
62+
63+
/// Store picker screen - `StorePickerViewController`
64+
///
65+
case storePicker
6266
}
6367

6468
init(screen: Screen, flow: AuthenticatorAnalyticsTracker.Flow) {
@@ -67,6 +71,9 @@ extension CustomHelpCenterContent {
6771
case .jetpackRequired:
6872
step = "jetpack_not_connected" // Matching Android `Step` value
6973
url = WooConstants.URLs.helpCenterForJetpackRequiredError.asURL()
74+
case .storePicker:
75+
step = "site_list" // Matching Android `Step` value
76+
url = WooConstants.URLs.helpCenterForStorePicker.asURL()
7077
}
7178

7279
trackingProperties = [

WooCommerce/Classes/System/WooConstants.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ extension WooConstants {
111111
///
112112
case helpCenterForJetpackRequiredError = "https://woocommerce.com/document/android-ios-apps-login-help-faq/#jetpack-required"
113113

114+
/// Help Center for "Store picker" screen
115+
///
116+
case helpCenterForStorePicker = "https://woocommerce.com/document/android-ios-apps-login-help-faq/#pick-store-after-entering-password"
117+
114118
/// URL used for Learn More button in Orders empty state.
115119
///
116120
case blog = "https://woocommerce.com/blog/"

WooCommerce/WooCommerceTests/Model/CustomHelpCenterContentTests.swift

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ final class CustomHelpCenterContentTests: XCTestCase {
3636
// Given
3737
let step: AuthenticatorAnalyticsTracker.Step = .start
3838
let flow: AuthenticatorAnalyticsTracker.Flow = .loginWithSiteAddress
39-
let helpContentURL = WooConstants.URLs.helpCenterForEnterStoreAddress.asURL()
4039

4140
// When
4241
let sut = try XCTUnwrap(CustomHelpCenterContent(step: step, flow: flow))
4342

4443
// Then
44+
let helpContentURL = WooConstants.URLs.helpCenterForEnterStoreAddress.asURL()
4545
XCTAssertEqual(sut.url, helpContentURL)
4646

4747
// Test the `trackingProperties` dictionary values
@@ -56,12 +56,12 @@ final class CustomHelpCenterContentTests: XCTestCase {
5656
// Given
5757
let step: AuthenticatorAnalyticsTracker.Step = .enterEmailAddress
5858
let flow: AuthenticatorAnalyticsTracker.Flow = .loginWithSiteAddress
59-
let helpContentURL = WooConstants.URLs.helpCenterForWPCOMEmailFromSiteAddressFlow.asURL()
6059

6160
// When
6261
let sut = try XCTUnwrap(CustomHelpCenterContent(step: step, flow: flow))
6362

6463
// Then
64+
let helpContentURL = WooConstants.URLs.helpCenterForWPCOMEmailFromSiteAddressFlow.asURL()
6565
XCTAssertEqual(sut.url, helpContentURL)
6666

6767
// Test the `trackingProperties` dictionary values
@@ -76,12 +76,12 @@ final class CustomHelpCenterContentTests: XCTestCase {
7676
// Given
7777
let step: AuthenticatorAnalyticsTracker.Step = .enterEmailAddress
7878
let flow: AuthenticatorAnalyticsTracker.Flow = .wpCom
79-
let helpContentURL = WooConstants.URLs.helpCenterForWPCOMEmailScreen.asURL()
8079

8180
// When
8281
let sut = try XCTUnwrap(CustomHelpCenterContent(step: step, flow: flow))
8382

8483
// Then
84+
let helpContentURL = WooConstants.URLs.helpCenterForWPCOMEmailScreen.asURL()
8585
XCTAssertEqual(sut.url, helpContentURL)
8686

8787
// Test the `trackingProperties` dictionary values
@@ -96,12 +96,12 @@ final class CustomHelpCenterContentTests: XCTestCase {
9696
// Given
9797
let step: AuthenticatorAnalyticsTracker.Step = .usernamePassword
9898
let flow: AuthenticatorAnalyticsTracker.Flow = .loginWithSiteAddress
99-
let helpContentURL = WooConstants.URLs.helpCenterForEnterStoreCredentials.asURL()
10099

101100
// When
102101
let sut = try XCTUnwrap(CustomHelpCenterContent(step: step, flow: flow))
103102

104103
// Then
104+
let helpContentURL = WooConstants.URLs.helpCenterForEnterStoreCredentials.asURL()
105105
XCTAssertEqual(sut.url, helpContentURL)
106106

107107
// Test the `trackingProperties` dictionary values
@@ -116,12 +116,32 @@ final class CustomHelpCenterContentTests: XCTestCase {
116116
// Given
117117
let step = "jetpack_not_connected"
118118
let flow: AuthenticatorAnalyticsTracker.Flow = .loginWithPasswordWithMagicLinkEmphasis
119-
let helpContentURL = WooConstants.URLs.helpCenterForJetpackRequiredError.asURL()
120119

121120
// When
122121
let sut = CustomHelpCenterContent(screen: .jetpackRequired, flow: flow)
123122

124123
// Then
124+
let helpContentURL = WooConstants.URLs.helpCenterForJetpackRequiredError.asURL()
125+
XCTAssertEqual(sut.url, helpContentURL)
126+
127+
// Test the `trackingProperties` dictionary values
128+
XCTAssertEqual(sut.trackingProperties[CustomHelpCenterContent.Key.step.rawValue], step)
129+
XCTAssertEqual(sut.trackingProperties[CustomHelpCenterContent.Key.flow.rawValue], flow.rawValue)
130+
XCTAssertEqual(sut.trackingProperties[CustomHelpCenterContent.Key.url.rawValue], helpContentURL.absoluteString)
131+
}
132+
133+
// MARK: Store picker screen - `StorePickerViewController`
134+
//
135+
func test_init_screen_returns_valid_instance_for_store_picker_screen() throws {
136+
// Given
137+
let step = "site_list"
138+
let flow: AuthenticatorAnalyticsTracker.Flow = .loginWithPasswordWithMagicLinkEmphasis
139+
140+
// When
141+
let sut = CustomHelpCenterContent(screen: .storePicker, flow: flow)
142+
143+
// Then
144+
let helpContentURL = WooConstants.URLs.helpCenterForStorePicker.asURL()
125145
XCTAssertEqual(sut.url, helpContentURL)
126146

127147
// Test the `trackingProperties` dictionary values

0 commit comments

Comments
 (0)