diff --git a/Kickstarter-iOS/Features/RemoteConfigFeatureFlagTools/Controller/__Snapshots__/RemoteConfigFeatureFlagToolsViewControllerTests/testRemoteConfigFeatureFlagToolsViewController.1.png b/Kickstarter-iOS/Features/RemoteConfigFeatureFlagTools/Controller/__Snapshots__/RemoteConfigFeatureFlagToolsViewControllerTests/testRemoteConfigFeatureFlagToolsViewController.1.png index 2fc3a315e7..30b13cbe42 100644 Binary files a/Kickstarter-iOS/Features/RemoteConfigFeatureFlagTools/Controller/__Snapshots__/RemoteConfigFeatureFlagToolsViewControllerTests/testRemoteConfigFeatureFlagToolsViewController.1.png and b/Kickstarter-iOS/Features/RemoteConfigFeatureFlagTools/Controller/__Snapshots__/RemoteConfigFeatureFlagToolsViewControllerTests/testRemoteConfigFeatureFlagToolsViewController.1.png differ diff --git a/Library/RemoteConfig/RemoteConfigFeature+Helpers.swift b/Library/RemoteConfig/RemoteConfigFeature+Helpers.swift index c8830fb3ff..e086be1d23 100644 --- a/Library/RemoteConfig/RemoteConfigFeature+Helpers.swift +++ b/Library/RemoteConfig/RemoteConfigFeature+Helpers.swift @@ -30,3 +30,7 @@ public func featurePostCampaignPledgeEnabled() -> Bool { public func featureReportThisProjectEnabled() -> Bool { featureEnabled(feature: .reportThisProjectEnabled) } + +public func featureLoginWithOAuthEnabled() -> Bool { + featureEnabled(feature: .loginWithOAuthEnabled) +} diff --git a/Library/RemoteConfig/RemoteConfigFeature+HelpersTests.swift b/Library/RemoteConfig/RemoteConfigFeature+HelpersTests.swift index b1c502fcf7..984ee8513d 100644 --- a/Library/RemoteConfig/RemoteConfigFeature+HelpersTests.swift +++ b/Library/RemoteConfig/RemoteConfigFeature+HelpersTests.swift @@ -118,4 +118,20 @@ final class RemoteConfigFeatureHelpersTests: TestCase { whenRemoteConfigFeatureIsFalse: .reportThisProjectEnabled ) } + + func testLoginWithOAuth_RemoteConfig_FeatureFlag_True() { + self + .assert( + featureFlagIsTrue: featureLoginWithOAuthEnabled, + whenRemoteConfigFeatureIsTrue: .loginWithOAuthEnabled + ) + } + + func testLoginWithOAuth_RemoteConfig_FeatureFlag_False() { + self + .assert( + featureFlagIsFalse: featureLoginWithOAuthEnabled, + whenRemoteConfigFeatureIsFalse: .loginWithOAuthEnabled + ) + } } diff --git a/Library/RemoteConfig/RemoteConfigFeature.swift b/Library/RemoteConfig/RemoteConfigFeature.swift index 9ee8dd262e..1ba4c08211 100644 --- a/Library/RemoteConfig/RemoteConfigFeature.swift +++ b/Library/RemoteConfig/RemoteConfigFeature.swift @@ -7,6 +7,7 @@ public enum RemoteConfigFeature: String, CaseIterable { case facebookLoginInterstitialEnabled = "facebook_interstitial" case postCampaignPledgeEnabled = "post_campaign_pledge" case reportThisProjectEnabled = "report_this_project" + case loginWithOAuthEnabled = "ios_oauth" } extension RemoteConfigFeature: CustomStringConvertible { @@ -18,6 +19,7 @@ extension RemoteConfigFeature: CustomStringConvertible { case .facebookLoginInterstitialEnabled: return "Facebook Login Interstitial" case .postCampaignPledgeEnabled: return "Post Campaign Pledging" case .reportThisProjectEnabled: return "Report This Project" + case .loginWithOAuthEnabled: return "Login with OAuth" } } } diff --git a/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModel.swift b/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModel.swift index cdddbefc29..95fc636d0f 100644 --- a/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModel.swift +++ b/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModel.swift @@ -97,6 +97,8 @@ private func isFeatureEnabled(_ feature: RemoteConfigFeature) -> Bool { return featurePostCampaignPledgeEnabled() case .reportThisProjectEnabled: return featureReportThisProjectEnabled() + case .loginWithOAuthEnabled: + return featureLoginWithOAuthEnabled() } } diff --git a/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModelTests.swift b/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModelTests.swift index ff1bc4a7b3..5ed28af0f9 100644 --- a/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModelTests.swift +++ b/Library/ViewModels/RemoteConfigFeatureFlagToolsViewModelTests.swift @@ -27,7 +27,8 @@ final class RemoteConfigFlagToolsViewModelTests: TestCase { RemoteConfigFeature.darkModeEnabled.rawValue: true, RemoteConfigFeature.facebookLoginInterstitialEnabled.rawValue: true, RemoteConfigFeature.postCampaignPledgeEnabled.rawValue: true, - RemoteConfigFeature.reportThisProjectEnabled.rawValue: true + RemoteConfigFeature.reportThisProjectEnabled.rawValue: true, + RemoteConfigFeature.loginWithOAuthEnabled.rawValue: true ] withEnvironment(remoteConfigClient: mockRemoteConfigClient) { @@ -51,7 +52,8 @@ final class RemoteConfigFlagToolsViewModelTests: TestCase { RemoteConfigFeature.darkModeEnabled.rawValue: false, RemoteConfigFeature.facebookLoginInterstitialEnabled.rawValue: true, RemoteConfigFeature.postCampaignPledgeEnabled.rawValue: false, - RemoteConfigFeature.reportThisProjectEnabled.rawValue: false + RemoteConfigFeature.reportThisProjectEnabled.rawValue: false, + RemoteConfigFeature.loginWithOAuthEnabled.rawValue: true ] withEnvironment(remoteConfigClient: mockRemoteConfigClient) {