Skip to content

Commit 28f1823

Browse files
committed
Add POS eligibility checker tests for CIAB site environment
1 parent e2b7281 commit 28f1823

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Settings/POS/LegacyPOSTabEligibilityCheckerTests.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,29 @@ struct LegacyPOSTabEligibilityCheckerTests {
8686
#expect(result == false)
8787
}
8888

89+
@Test func is_invisible_when_site_is_CIAB() async throws {
90+
// Given
91+
let featureFlagService = MockFeatureFlagService(isPointOfSaleAsATabi2Enabled: false)
92+
setupCountry(country: .us)
93+
accountWhitelistedInBackend(true)
94+
let ciabEligibilityChecker = MockCIABEligibilityChecker(mockedIsCurrentSiteCIAB: true,
95+
mockedCIABSites: [site],
96+
mockedCIABDisabledFeatures: [.pointOfSale])
97+
let checker = LegacyPOSTabEligibilityChecker(site: site,
98+
userInterfaceIdiom: .pad,
99+
siteSettings: siteSettings,
100+
pluginsService: pluginsService,
101+
stores: stores,
102+
featureFlagService: featureFlagService,
103+
siteCIABEligibilityChecker: ciabEligibilityChecker)
104+
105+
// When
106+
let result = await checker.checkVisibility()
107+
108+
// Then
109+
#expect(result == false)
110+
}
111+
89112
@Test(arguments: [
90113
(country: Country.ca, currency: CurrencyCode.CAD),
91114
(country: Country.es, currency: CurrencyCode.EUR)

WooCommerce/WooCommerceTests/ViewRelated/Settings/POS/POSTabEligibilityCheckerTests.swift

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,28 @@ struct POSTabEligibilityCheckerTests {
307307
#expect(result == false)
308308
}
309309

310+
@Test func is_invisible_when_site_is_CIAB() async throws {
311+
// Given
312+
let featureFlagService = MockFeatureFlagService(isPointOfSaleAsATabi2Enabled: true)
313+
setupCountry(country: .us, currency: .USD)
314+
accountWhitelistedInBackend(true)
315+
let ciabEligibilityChecker = MockCIABEligibilityChecker(mockedIsCurrentSiteCIAB: true,
316+
mockedCIABSites: [site],
317+
mockedCIABDisabledFeatures: [.pointOfSale])
318+
let checker = POSTabEligibilityChecker(site: site,
319+
userInterfaceIdiom: .pad,
320+
siteSettings: siteSettings,
321+
stores: stores,
322+
featureFlagService: featureFlagService,
323+
siteCIABEligibilityChecker: ciabEligibilityChecker)
324+
325+
// When
326+
let result = await checker.checkVisibility()
327+
328+
// Then
329+
#expect(result == false)
330+
}
331+
310332
@Test func checkVisibility_and_checkEligibility_return_expected_result_after_site_settings_available() async throws {
311333
// Given - no site settings are immediately available (empty stream that will emit values later)
312334
let featureFlagService = MockFeatureFlagService(isPointOfSaleAsATabi2Enabled: true)
@@ -344,6 +366,29 @@ struct POSTabEligibilityCheckerTests {
344366
#expect(eligibilityResult == .eligible)
345367
}
346368

369+
@Test func is_ineligible_when_site_is_CIAB() async throws {
370+
// Given
371+
let featureFlagService = MockFeatureFlagService(isPointOfSaleAsATabi2Enabled: true)
372+
setupCountry(country: .us, currency: .USD)
373+
accountWhitelistedInBackend(true)
374+
let ciabEligibilityChecker = MockCIABEligibilityChecker(mockedIsCurrentSiteCIAB: true,
375+
mockedCIABSites: [site],
376+
mockedCIABDisabledFeatures: [.pointOfSale])
377+
let checker = POSTabEligibilityChecker(site: site,
378+
userInterfaceIdiom: .pad,
379+
siteSettings: siteSettings,
380+
stores: stores,
381+
featureFlagService: featureFlagService,
382+
systemStatusService: mockSystemStatusService,
383+
siteCIABEligibilityChecker: ciabEligibilityChecker)
384+
385+
// When
386+
let result = await checker.checkEligibility()
387+
388+
// Then
389+
#expect(result == .ineligible(reason: .unsupportedInCIABSites))
390+
}
391+
347392
// MARK: - `checkInitialVisibility Tests
348393

349394
@Test func checkInitialVisibility_returns_true_when_cached_tab_visibility_is_enabled() async throws {

0 commit comments

Comments
 (0)