Skip to content

Commit 9fe048d

Browse files
committed
Fix crashes in MainTabBarControllerTests due to fatalError from accessing ServiceLocator.grdbManager when the feature flag is disabled.
1 parent 47c62f4 commit 9fe048d

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

WooCommerce/Classes/POS/Models/PointOfSaleSettingsController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ protocol PointOfSaleSettingsControllerProtocol {
3030
pluginsService: PluginsServiceProtocol,
3131
defaultSiteName: String?,
3232
siteSettings: [SiteSetting],
33-
grdbManager: GRDBManagerProtocol,
33+
grdbManager: GRDBManagerProtocol?,
3434
catalogSyncCoordinator: POSCatalogSyncCoordinatorProtocol?) {
3535
self.storeViewModel = POSSettingsStoreViewModel(siteID: siteID,
3636
settingsService: settingsService,
3737
pluginsService: pluginsService,
3838
defaultSiteName: defaultSiteName,
3939
siteSettings: siteSettings)
40-
if let catalogSyncCoordinator {
40+
if let catalogSyncCoordinator, let grdbManager {
4141
self.localCatalogViewModel = POSSettingsLocalCatalogViewModel(
4242
siteID: siteID,
4343
catalogSettingsService: POSCatalogSettingsService(grdbManager: grdbManager),

WooCommerce/Classes/POS/TabBar/POSTabCoordinator.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ final class POSTabCoordinator {
3131
private let currencySettings: CurrencySettings
3232
private let pushNotesManager: PushNotesManager
3333
private let eligibilityChecker: POSEntryPointEligibilityCheckerProtocol
34-
private let grdbManager: GRDBManagerProtocol
35-
private let catalogSyncCoordinator: POSCatalogSyncCoordinatorProtocol?
3634

3735
private lazy var posItemFetchStrategyFactory: PointOfSaleItemFetchStrategyFactory = {
3836
PointOfSaleItemFetchStrategyFactory(siteID: siteID, credentials: credentials)
@@ -69,9 +67,7 @@ final class POSTabCoordinator {
6967
storageManager: StorageManagerType = ServiceLocator.storageManager,
7068
currencySettings: CurrencySettings = ServiceLocator.currencySettings,
7169
pushNotesManager: PushNotesManager = ServiceLocator.pushNotesManager,
72-
eligibilityChecker: POSEntryPointEligibilityCheckerProtocol,
73-
grdbManager: GRDBManagerProtocol = ServiceLocator.grdbManager,
74-
catalogSyncCoordinator: POSCatalogSyncCoordinatorProtocol? = ServiceLocator.posCatalogSyncCoordinator) {
70+
eligibilityChecker: POSEntryPointEligibilityCheckerProtocol) {
7571
self.siteID = siteID
7672
self.storesManager = storesManager
7773
self.tabContainerController = tabContainerController
@@ -81,8 +77,6 @@ final class POSTabCoordinator {
8177
self.currencySettings = currencySettings
8278
self.pushNotesManager = pushNotesManager
8379
self.eligibilityChecker = eligibilityChecker
84-
self.grdbManager = grdbManager
85-
self.catalogSyncCoordinator = catalogSyncCoordinator
8680

8781
tabContainerController.wrappedController = POSTabViewController()
8882
}
@@ -107,6 +101,8 @@ private extension POSTabCoordinator {
107101
let pluginsService = PluginsService(storageManager: storageManager)
108102
let siteTimezone = storesManager.sessionManager.defaultSite?.siteTimezone ?? .current
109103

104+
let grdbManager: GRDBManagerProtocol? = serviceAdaptor.featureFlags.isFeatureFlagEnabled(.pointOfSaleLocalCatalogi1) ? ServiceLocator.grdbManager : nil
105+
let catalogSyncCoordinator = ServiceLocator.posCatalogSyncCoordinator
110106

111107
if let receiptService = POSReceiptService(siteID: siteID,
112108
credentials: credentials),

WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleSettingsControllerTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ struct PointOfSaleSettingsControllerTests {
1919
pluginsService: mockPluginService,
2020
defaultSiteName: "Test Store",
2121
siteSettings: [],
22-
grdbManager: ServiceLocator.grdbManager,
23-
catalogSyncCoordinator: ServiceLocator.posCatalogSyncCoordinator)
22+
grdbManager: nil,
23+
catalogSyncCoordinator: nil)
2424

2525
// When
2626
let cardReader = sut.connectedCardReader
@@ -38,8 +38,8 @@ struct PointOfSaleSettingsControllerTests {
3838
pluginsService: mockPluginService,
3939
defaultSiteName: "Test Store",
4040
siteSettings: [],
41-
grdbManager: ServiceLocator.grdbManager,
42-
catalogSyncCoordinator: ServiceLocator.posCatalogSyncCoordinator)
41+
grdbManager: nil,
42+
catalogSyncCoordinator: nil)
4343

4444
// Initially nil
4545
#expect(sut.connectedCardReader == nil)

0 commit comments

Comments
 (0)