Skip to content

Commit 21f7c06

Browse files
authored
[POS as a tab i1] Remove unused POS eligibility checker use case in Experimental Features (#15731)
2 parents 0fb2088 + f70f545 commit 21f7c06

File tree

2 files changed

+10
-43
lines changed

2 files changed

+10
-43
lines changed

WooCommerce/Classes/ViewRelated/Dashboard/Settings/Beta features/BetaFeaturesConfigurationViewModel.swift

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,22 @@ final class BetaFeaturesConfigurationViewModel: ObservableObject {
66
@Published private(set) var availableFeatures: [BetaFeature] = []
77
private let appSettings: GeneralAppSettingsStorage
88
private let featureFlagService: FeatureFlagService
9-
private let posEligibilityChecker: POSEligibilityCheckerProtocol
109

1110
init(appSettings: GeneralAppSettingsStorage = ServiceLocator.generalAppSettings,
12-
featureFlagService: FeatureFlagService = ServiceLocator.featureFlagService,
13-
posEligibilityChecker: POSEligibilityCheckerProtocol = POSEligibilityChecker(
14-
siteSettings: ServiceLocator.selectedSiteSettings,
15-
currencySettings: ServiceLocator.currencySettings,
16-
featureFlagService: ServiceLocator.featureFlagService
17-
)) {
11+
featureFlagService: FeatureFlagService = ServiceLocator.featureFlagService) {
1812
self.appSettings = appSettings
1913
self.featureFlagService = featureFlagService
20-
self.posEligibilityChecker = posEligibilityChecker
21-
observePOSEligibilityForAvailableFeatures()
14+
availableFeatures = BetaFeature.allCases.filter { betaFeature in
15+
switch betaFeature {
16+
case .viewAddOns:
17+
return true
18+
case .inAppPurchases:
19+
return featureFlagService.isFeatureFlagEnabled(.inAppPurchasesDebugMenu)
20+
}
21+
}
2222
}
2323

2424
func isOn(feature: BetaFeature) -> Binding<Bool> {
2525
appSettings.betaFeatureEnabledBinding(feature)
2626
}
2727
}
28-
29-
private extension BetaFeaturesConfigurationViewModel {
30-
func observePOSEligibilityForAvailableFeatures() {
31-
posEligibilityChecker.isEligible
32-
.map { [weak self] isEligibleForPOS in
33-
guard let self else {
34-
return []
35-
}
36-
return BetaFeature.allCases.filter { betaFeature in
37-
switch betaFeature {
38-
case .viewAddOns:
39-
return true
40-
case .inAppPurchases:
41-
return self.featureFlagService.isFeatureFlagEnabled(.inAppPurchasesDebugMenu)
42-
}
43-
}
44-
}
45-
.assign(to: &$availableFeatures)
46-
}
47-
}

WooCommerce/WooCommerceTests/Model/BetaFeaturesConfigurationViewModelTests.swift

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,9 @@ final class BetaFeaturesConfigurationViewModelTests: XCTestCase {
1616

1717
func test_availableFeatures_include_viewAddOns() {
1818
// Given
19-
let viewModel = BetaFeaturesConfigurationViewModel(appSettings: appSettings,
20-
posEligibilityChecker: MockPOSEligibilityChecker(isEligibleValue: true))
19+
let viewModel = BetaFeaturesConfigurationViewModel(appSettings: appSettings)
2120

2221
// Then
2322
XCTAssertTrue(viewModel.availableFeatures.contains(.viewAddOns))
2423
}
2524
}
26-
27-
private final class MockPOSEligibilityChecker: POSEligibilityCheckerProtocol {
28-
@Published var isEligibleValue: Bool
29-
30-
init(isEligibleValue: Bool) {
31-
self.isEligibleValue = isEligibleValue
32-
}
33-
34-
var isEligible: AnyPublisher<Bool, Never> {
35-
$isEligibleValue.eraseToAnyPublisher()
36-
}
37-
}

0 commit comments

Comments
 (0)