Skip to content

Commit

Permalink
[PAY-1894] Updated Optimizely Feature Flag For Payment Sheet in Setti…
Browse files Browse the repository at this point in the history
…ngs (#1716)
  • Loading branch information
msadoon committed Aug 31, 2022
1 parent 31562b1 commit 5304313
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 7 deletions.
Expand Up @@ -24,6 +24,8 @@ final class OptimizelyFeatureFlagToolsViewControllerTests: TestCase {
OptimizelyFeature.commentFlaggingEnabled.rawValue: false,
OptimizelyFeature.projectPageStoryTabEnabled.rawValue: false,
OptimizelyFeature.rewardLocalPickupEnabled.rawValue: false,
OptimizelyFeature.paymentSheetEnabled.rawValue: false,
OptimizelyFeature.settingsPaymentSheetEnabled.rawValue: false,
OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue: false
]

Expand Down
2 changes: 1 addition & 1 deletion Library/OptimizelyClientTypeTests.swift
Expand Up @@ -24,7 +24,7 @@ final class OptimizelyClientTypeTests: TestCase {
OptimizelyFeature.commentFlaggingEnabled.rawValue: true
]

XCTAssert(mockOptimizelyClient.allFeatures().count == 5)
XCTAssert(mockOptimizelyClient.allFeatures().count == 6)
}

func testVariantForExperiment_NoError() {
Expand Down
9 changes: 8 additions & 1 deletion Library/OptimizelyFeature+Helpers.swift
Expand Up @@ -28,7 +28,14 @@ public func featurePaymentSheetEnabled() -> Bool {
.isFeatureEnabled(featureKey: OptimizelyFeature.paymentSheetEnabled.rawValue) ?? false)
}

public func facebookLoginDeprecationEnabled() -> Bool {
public func featureSettingsPaymentSheetEnabled() -> Bool {
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.settingsPaymentSheetEnabled.rawValue] ??
(AppEnvironment.current.optimizelyClient?
.isFeatureEnabled(featureKey: OptimizelyFeature.settingsPaymentSheetEnabled.rawValue) ?? false)
}

public func featureFacebookLoginDeprecationEnabled() -> Bool {
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue] ??
(AppEnvironment.current.optimizelyClient?
Expand Down
11 changes: 10 additions & 1 deletion Library/OptimizelyFeature+HelpersTests.swift
Expand Up @@ -75,12 +75,21 @@ final class OptimizelyFeatureHelpersTests: TestCase {
}
}

func testSettingsPaymentSheet_Optimizely_FeatureFlag_False() {
let mockOptimizelyClient = MockOptimizelyClient()
|> \.features .~ [OptimizelyFeature.settingsPaymentSheetEnabled.rawValue: false]

withEnvironment(optimizelyClient: mockOptimizelyClient) {
XCTAssertFalse(featureSettingsPaymentSheetEnabled())
}
}

func testFacebookDeprecation_Optimizely_FeatureFlag_False() {
let mockOptimizelyClient = MockOptimizelyClient()
|> \.features .~ [OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue: false]

withEnvironment(optimizelyClient: mockOptimizelyClient) {
XCTAssertFalse(facebookLoginDeprecationEnabled())
XCTAssertFalse(featureFacebookLoginDeprecationEnabled())
}
}
}
10 changes: 6 additions & 4 deletions Library/OptimizelyFeature.swift
Expand Up @@ -2,20 +2,22 @@ import Foundation

public enum OptimizelyFeature: String, CaseIterable {
case commentFlaggingEnabled = "ios_comment_threading_comment_flagging"
case facebookLoginDeprecationEnabled = "ios_facebook_deprecation"
case paymentSheetEnabled = "ios_payment_sheet"
case projectPageStoryTabEnabled = "project_page_v2_story"
case rewardLocalPickupEnabled = "ios_local_pickup"
case paymentSheetEnabled = "ios_payment_sheet"
case facebookLoginDeprecationEnabled = "ios_facebook_deprecation"
case settingsPaymentSheetEnabled = "ios_settings_payment_sheet"
}

extension OptimizelyFeature: CustomStringConvertible {
public var description: String {
switch self {
case .commentFlaggingEnabled: return "Comment Flagging"
case .facebookLoginDeprecationEnabled: return "Facebook Login Deprecation"
case .paymentSheetEnabled: return "Payment Sheet"
case .projectPageStoryTabEnabled: return "Project Page Story Tab"
case .rewardLocalPickupEnabled: return "Local Pickup Rewards"
case .paymentSheetEnabled: return "Payment Sheet"
case .facebookLoginDeprecationEnabled: return "Facebook Login Deprecation"
case .settingsPaymentSheetEnabled: return "Settings Payment Sheet"
}
}
}
6 changes: 6 additions & 0 deletions Library/ViewModels/OptimizelyFeatureFlagToolsViewModel.swift
Expand Up @@ -104,6 +104,9 @@ private func getValueFromUserDefaults(for feature: OptimizelyFeature) -> Bool? {
case .paymentSheetEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.paymentSheetEnabled.rawValue]
case .settingsPaymentSheetEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.settingsPaymentSheetEnabled.rawValue]
case .facebookLoginDeprecationEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue]
Expand All @@ -126,6 +129,9 @@ private func setValueInUserDefaults(for feature: OptimizelyFeature, and value: B
case .paymentSheetEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.paymentSheetEnabled.rawValue] = value
case .settingsPaymentSheetEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.settingsPaymentSheetEnabled.rawValue] = value
case .facebookLoginDeprecationEnabled:
return AppEnvironment.current.userDefaults
.optimizelyFeatureFlags[OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue] = value
Expand Down
Expand Up @@ -26,6 +26,7 @@ final class OptimizelyFlagToolsViewModelTests: TestCase {
OptimizelyFeature.projectPageStoryTabEnabled.rawValue: true,
OptimizelyFeature.rewardLocalPickupEnabled.rawValue: true,
OptimizelyFeature.paymentSheetEnabled.rawValue: true,
OptimizelyFeature.settingsPaymentSheetEnabled.rawValue: true,
OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue: true
]

Expand All @@ -49,6 +50,7 @@ final class OptimizelyFlagToolsViewModelTests: TestCase {
OptimizelyFeature.projectPageStoryTabEnabled.rawValue: false,
OptimizelyFeature.rewardLocalPickupEnabled.rawValue: false,
OptimizelyFeature.paymentSheetEnabled.rawValue: false,
OptimizelyFeature.settingsPaymentSheetEnabled.rawValue: false,
OptimizelyFeature.facebookLoginDeprecationEnabled.rawValue: false
]

Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5304313

Please sign in to comment.