@@ -105,6 +105,60 @@ final class BlazeCampaignDashboardViewModelTests: XCTestCase {
105105 XCTAssertFalse ( sut. canShowInDashboard)
106106 }
107107
108+ @MainActor
109+ func test_canShowInDashboard_returns_false_if_store_is_ciab_and_other_requirements_met( ) async {
110+ // Given
111+ let siteCIABChecker = MockCIABEligibilityChecker (
112+ mockedIsCurrentSiteCIAB: true ,
113+ mockedCIABSites: [ stores. sessionManager. defaultSite ?? . fake( ) ]
114+ )
115+ let blazeEligibilityChecker = BlazeEligibilityChecker (
116+ stores: stores,
117+ siteCIABEligibilityChecker: siteCIABChecker
118+ )
119+ let sut = BlazeCampaignDashboardViewModel (
120+ siteID: sampleSiteID,
121+ stores: stores,
122+ storageManager: storageManager,
123+ blazeEligibilityChecker: blazeEligibilityChecker
124+ )
125+
126+ mockSynchronizeProducts ( )
127+ mockSynchronizeCampaignsList ( )
128+
129+ // When
130+ await sut. checkAvailability ( )
131+
132+ // Then
133+ XCTAssertFalse ( sut. canShowInDashboard)
134+ }
135+
136+ @MainActor
137+ func test_canShowInDashboard_returns_true_if_store_is_non_ciab_and_other_requirements_met( ) async {
138+ // Given
139+ let siteCIABChecker = MockCIABEligibilityChecker ( mockedIsCurrentSiteCIAB: false )
140+ let blazeEligibilityChecker = BlazeEligibilityChecker (
141+ stores: stores,
142+ siteCIABEligibilityChecker: siteCIABChecker
143+ )
144+
145+ let sut = BlazeCampaignDashboardViewModel (
146+ siteID: sampleSiteID,
147+ stores: stores,
148+ storageManager: storageManager,
149+ blazeEligibilityChecker: blazeEligibilityChecker
150+ )
151+
152+ mockSynchronizeProducts ( )
153+ mockSynchronizeCampaignsList ( )
154+
155+ // When
156+ await sut. checkAvailability ( )
157+
158+ // Then
159+ XCTAssertFalse ( sut. canShowInDashboard)
160+ }
161+
108162 // MARK: Published product
109163
110164 @MainActor
0 commit comments