From cd831c2f41c7da79dab67acdbb7cd5c2b07814a5 Mon Sep 17 00:00:00 2001 From: Sam Symons Date: Mon, 21 Aug 2023 18:18:20 -0700 Subject: [PATCH] Update the phased rollout tester to not cache the config. --- .../PhasedRolloutFeatureFlagTester.swift | 8 ++++---- .../PhasedRolloutFeatureFlagTesterTests.swift | 15 +++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/DuckDuckGo/NetworkProtection/PhasedRolloutFeatureFlagTester.swift b/DuckDuckGo/NetworkProtection/PhasedRolloutFeatureFlagTester.swift index 28c373b29e..5129aec131 100644 --- a/DuckDuckGo/NetworkProtection/PhasedRolloutFeatureFlagTester.swift +++ b/DuckDuckGo/NetworkProtection/PhasedRolloutFeatureFlagTester.swift @@ -37,20 +37,20 @@ final class PhasedRolloutFeatureFlagTester { static let hasSentPixelKey = "network-protection.incremental-feature-flag-test.has-sent-pixel" } - private let privacyConfiguration: PrivacyConfiguration + private let privacyConfigurationManager: PrivacyConfigurationManaging private let pixelSender: PhasedRolloutPixelSender private let userDefaults: UserDefaults - init(privacyConfiguration: PrivacyConfiguration = ContentBlocking.shared.privacyConfigurationManager.privacyConfig, + init(privacyConfigurationManager: PrivacyConfigurationManaging = ContentBlocking.shared.privacyConfigurationManager, pixelSender: PhasedRolloutPixelSender = DefaultPhasedRolloutPixelSender(), userDefaults: UserDefaults = .standard) { - self.privacyConfiguration = privacyConfiguration + self.privacyConfigurationManager = privacyConfigurationManager self.pixelSender = pixelSender self.userDefaults = userDefaults } func sendFeatureFlagEnabledPixelIfNecessary(completion: (() -> Void)? = nil) { - guard !hasSentPixelBefore(), privacyConfiguration.isSubfeatureEnabled(IncrementalRolloutTestSubfeature.rollout) else { + guard !hasSentPixelBefore(), privacyConfigurationManager.privacyConfig.isSubfeatureEnabled(IncrementalRolloutTestSubfeature.rollout) else { completion?() return } diff --git a/UnitTests/NetworkProtection/PhasedRolloutFeatureFlagTesterTests.swift b/UnitTests/NetworkProtection/PhasedRolloutFeatureFlagTesterTests.swift index bbbc438e63..9105f623e0 100644 --- a/UnitTests/NetworkProtection/PhasedRolloutFeatureFlagTesterTests.swift +++ b/UnitTests/NetworkProtection/PhasedRolloutFeatureFlagTesterTests.swift @@ -66,11 +66,12 @@ final class PhasedRolloutFeatureFlagTesterTests: XCTestCase { } func testWhenAttemptingToSendPixel_AndRolloutSubfeatureIsDisabled_ThenPixelDoesNotSend() { - let mockPrivacyConfiguration = mockConfiguration(subfeatureEnabled: false) + let mockManager = MockPrivacyConfigurationManager() + mockManager.privacyConfig = mockConfiguration(subfeatureEnabled: false) let pixelSender = MockPixelSender(returnError: false) let userDefaults = UserDefaults(suiteName: Self.testSuiteName)! - let tester = PhasedRolloutFeatureFlagTester(privacyConfiguration: mockPrivacyConfiguration, + let tester = PhasedRolloutFeatureFlagTester(privacyConfigurationManager: mockManager, pixelSender: pixelSender, userDefaults: userDefaults) @@ -85,11 +86,12 @@ final class PhasedRolloutFeatureFlagTesterTests: XCTestCase { } func testWhenAttemptingToSendPixel_AndRolloutSubfeatureIsEnabled_AndPixelHasNotBeenSentBefore_ThenPixelSends() { - let mockPrivacyConfiguration = mockConfiguration(subfeatureEnabled: true) + let mockManager = MockPrivacyConfigurationManager() + mockManager.privacyConfig = mockConfiguration(subfeatureEnabled: true) let pixelSender = MockPixelSender(returnError: false) let userDefaults = UserDefaults(suiteName: Self.testSuiteName)! - let tester = PhasedRolloutFeatureFlagTester(privacyConfiguration: mockPrivacyConfiguration, + let tester = PhasedRolloutFeatureFlagTester(privacyConfigurationManager: mockManager, pixelSender: pixelSender, userDefaults: userDefaults) @@ -104,11 +106,12 @@ final class PhasedRolloutFeatureFlagTesterTests: XCTestCase { } func testWhenAttemptingToSendPixel_AndRolloutSubfeatureIsEnabled_AndPixelHasBeenSentBefore_ThenPixelDoesNotSend() { - let mockPrivacyConfiguration = mockConfiguration(subfeatureEnabled: true) + let mockManager = MockPrivacyConfigurationManager() + mockManager.privacyConfig = mockConfiguration(subfeatureEnabled: true) let pixelSender = MockPixelSender(returnError: false) let userDefaults = UserDefaults(suiteName: Self.testSuiteName)! - let tester = PhasedRolloutFeatureFlagTester(privacyConfiguration: mockPrivacyConfiguration, + let tester = PhasedRolloutFeatureFlagTester(privacyConfigurationManager: mockManager, pixelSender: pixelSender, userDefaults: userDefaults)