@@ -105,6 +105,60 @@ final class BlazeCampaignDashboardViewModelTests: XCTestCase {
105
105
XCTAssertFalse ( sut. canShowInDashboard)
106
106
}
107
107
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
+
108
162
// MARK: Published product
109
163
110
164
@MainActor
0 commit comments