Skip to content

Commit

Permalink
remove flag and update tests (#2071)
Browse files Browse the repository at this point in the history
  • Loading branch information
scottkicks authored May 29, 2024
1 parent ed4f2f5 commit 68afecd
Show file tree
Hide file tree
Showing 8 changed files with 7 additions and 76 deletions.
3 changes: 1 addition & 2 deletions Kickstarter-iOS/AppDelegateViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -750,8 +750,7 @@ public final class AppDelegateViewModel: AppDelegateViewModelType, AppDelegateVi
.filter(isTrue)
.map { _ in
guard let _ = AppEnvironment.current.appTrackingTransparency.advertisingIdentifier else {
if AppEnvironment.current.appTrackingTransparency.shouldRequestAuthorizationStatus(),
featureConsentManagementDialogEnabled() {
if AppEnvironment.current.appTrackingTransparency.shouldRequestAuthorizationStatus() {
AppEnvironment.current.appTrackingTransparency.requestAndSetAuthorizationStatus()
}

Expand Down
50 changes: 3 additions & 47 deletions Kickstarter-iOS/AppDelegateViewModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2280,17 +2280,12 @@ final class AppDelegateViewModelTests: TestCase {

func testRequestATTrackingAuthorizationStatus_WhenAppBecomesActive_WhenAdvertisingIdentifierNil_WhenConsentManagementFeatureFlagOn_WhenShouldRequestAuthorizationStatusTrue_RequestAllowed_ShowsConsentDialogAndUpdatesAdId(
) {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: true
]
let appTrackingTransparency = MockAppTrackingTransparency()
appTrackingTransparency.requestAndSetAuthorizationStatusFlag = true
appTrackingTransparency.shouldRequestAuthStatus = true

withEnvironment(
appTrackingTransparency: appTrackingTransparency,
remoteConfigClient: mockRemoteConfigClient
appTrackingTransparency: appTrackingTransparency
) {
self.requestATTrackingAuthorizationStatus.assertValueCount(0)

Expand All @@ -2309,17 +2304,12 @@ final class AppDelegateViewModelTests: TestCase {

func testRequestATTrackingAuthorizationStatus_WhenAppBecomesActive_WhenAdvertisingIdentifierNil_WhenConsentManagementFeatureFlagOn_WhenShouldRequestAuthorizationStatusFalse_RequestAllowed_DoesNotShowConsentDialogAndDoesNotUpdateAdId(
) {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: true
]
let appTrackingTransparency = MockAppTrackingTransparency()
appTrackingTransparency.requestAndSetAuthorizationStatusFlag = true
appTrackingTransparency.shouldRequestAuthStatus = false

withEnvironment(
appTrackingTransparency: appTrackingTransparency,
remoteConfigClient: mockRemoteConfigClient
appTrackingTransparency: appTrackingTransparency
) {
self.requestATTrackingAuthorizationStatus.assertValueCount(0)

Expand All @@ -2338,46 +2328,12 @@ final class AppDelegateViewModelTests: TestCase {

func testRequestATTrackingAuthorizationStatus_WhenAppBecomesActive_WhenAdvertisingIdentifierNil_WhenConsentManagementFeatureFlagOn_WhenShouldRequestAuthorizationStatusTrue_RequestDenied_DoesNotShowConsentDialogAndDoesNotUpdateAdId(
) {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: true
]
let appTrackingTransparency = MockAppTrackingTransparency()
appTrackingTransparency.requestAndSetAuthorizationStatusFlag = false
appTrackingTransparency.shouldRequestAuthStatus = true

withEnvironment(
appTrackingTransparency: appTrackingTransparency,
remoteConfigClient: mockRemoteConfigClient
) {
self.requestATTrackingAuthorizationStatus.assertValueCount(0)

XCTAssertNil(appTrackingTransparency.advertisingIdentifier)

self.vm.inputs.applicationActive(state: false)
self.vm.inputs.applicationDidFinishLaunching(application: UIApplication.shared, launchOptions: nil)
self.vm.inputs.applicationActive(state: true)

self.scheduler.advance(by: .seconds(1))

XCTAssertNil(appTrackingTransparency.advertisingIdentifier)
self.requestATTrackingAuthorizationStatus.assertValueCount(1)
}
}

func testRequestATTrackingAuthorizationStatus_WhenAppBecomesActive_WhenAdvertisingIdentifierNil_WhenConsentManagementFeatureFlagOff_WhenShouldRequestAuthorizationStatusTrue_RequestAllowed_DoesNotShowConsentDialogAndDoesNotUpdateAdId(
) {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: false
]
let appTrackingTransparency = MockAppTrackingTransparency()
appTrackingTransparency.requestAndSetAuthorizationStatusFlag = true
appTrackingTransparency.shouldRequestAuthStatus = true

withEnvironment(
appTrackingTransparency: appTrackingTransparency,
remoteConfigClient: mockRemoteConfigClient
appTrackingTransparency: appTrackingTransparency
) {
self.requestATTrackingAuthorizationStatus.assertValueCount(0)

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions Library/RemoteConfig/RemoteConfigFeature+Helpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ private func featureEnabled(feature: RemoteConfigFeature, defaultValue: Bool = f
return defaultValue
}

public func featureConsentManagementDialogEnabled() -> Bool {
return featureEnabled(feature: .consentManagementDialogEnabled)
}

public func featureDarkModeEnabled() -> Bool {
return featureEnabled(feature: .darkModeEnabled)
}
Expand Down
16 changes: 0 additions & 16 deletions Library/RemoteConfig/RemoteConfigFeature+HelpersTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,6 @@ final class RemoteConfigFeatureHelpersTests: TestCase {
}
}

func testConsentManagementDialog_RemoteConfig_FeatureFlag_False() {
self
.assert(
featureFlagIsFalse: featureConsentManagementDialogEnabled,
whenRemoteConfigFeatureIsFalse: .consentManagementDialogEnabled
)
}

func testConsentManagementDialog_RemoteConfig_FeatureFlag_True() {
self
.assert(
featureFlagIsTrue: featureConsentManagementDialogEnabled,
whenRemoteConfigFeatureIsTrue: .consentManagementDialogEnabled
)
}

func testDarkMode_RemoteConfig_FeatureFlag_False() {
self
.assert(
Expand Down
2 changes: 0 additions & 2 deletions Library/RemoteConfig/RemoteConfigFeature.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import Foundation

public enum RemoteConfigFeature: String, CaseIterable {
case consentManagementDialogEnabled = "consent_management_dialog"
case darkModeEnabled = "dark_mode"
case facebookLoginInterstitialEnabled = "facebook_interstitial"
case postCampaignPledgeEnabled = "post_campaign_pledge"
Expand All @@ -12,7 +11,6 @@ public enum RemoteConfigFeature: String, CaseIterable {
extension RemoteConfigFeature: CustomStringConvertible {
public var description: String {
switch self {
case .consentManagementDialogEnabled: return "Consent Management Dialog"
case .darkModeEnabled: return "Dark Mode"
case .facebookLoginInterstitialEnabled: return "Facebook Login Interstitial"
case .postCampaignPledgeEnabled: return "Post Campaign Pledging"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ public final class RemoteConfigFeatureFlagToolsViewModel: RemoteConfigFeatureFla

private func isFeatureEnabled(_ feature: RemoteConfigFeature) -> Bool {
switch feature {
case .consentManagementDialogEnabled:
return featureConsentManagementDialogEnabled()
case .darkModeEnabled:
return featureDarkModeEnabled()
case .facebookLoginInterstitialEnabled:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ final class RemoteConfigFlagToolsViewModelTests: TestCase {
func testUpdateUserDefaultsWithFeature_FeatureIsEnabled() {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: false
RemoteConfigFeature.darkModeEnabled.rawValue: false
]

withEnvironment(remoteConfigClient: mockRemoteConfigClient) {
Expand All @@ -86,7 +86,7 @@ final class RemoteConfigFlagToolsViewModelTests: TestCase {
func testUpdateUserDefaultsWithFeatures_ReloadWithData_UserDefaultsIsUpdated() {
let mockRemoteConfigClient = MockRemoteConfigClient()
|> \.features .~ [
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: false
RemoteConfigFeature.darkModeEnabled.rawValue: false
]

withEnvironment(remoteConfigClient: mockRemoteConfigClient, userDefaults: userDefaults) {
Expand All @@ -112,7 +112,7 @@ final class RemoteConfigFlagToolsViewModelTests: TestCase {
userDefaults
.dictionary(forKey: "com.kickstarter.KeyValueStoreType.remoteConfigFeatureFlags") as? [String: Bool],
[
RemoteConfigFeature.consentManagementDialogEnabled.rawValue: true
RemoteConfigFeature.darkModeEnabled.rawValue: true
]
)
}
Expand Down

0 comments on commit 68afecd

Please sign in to comment.