Skip to content

Commit 40184c0

Browse files
committed
Add test
1 parent 868765c commit 40184c0

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModelTests.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,37 @@ final class AnalyticsHubViewModelTests: XCTestCase {
7979
XCTAssertTrue(vm.sessionsCard.showSyncError)
8080
}
8181

82+
func test_cards_viewmodels_show_sync_error_only_if_underlying_request_fails() async {
83+
// Given
84+
let vm = AnalyticsHubViewModel(siteID: 123, statsTimeRange: .thisMonth, usageTracksEventEmitter: eventEmitter, stores: stores)
85+
stores.whenReceivingAction(ofType: StatsActionV4.self) { action in
86+
switch action {
87+
case let .retrieveCustomStats(_, _, _, _, _, _, completion):
88+
completion(.failure(NSError(domain: "Test", code: 1)))
89+
case let .retrieveTopEarnerStats(_, _, _, _, _, _, _, completion):
90+
let topEarners = TopEarnerStats.fake().copy(items: [.fake()])
91+
completion(.success(topEarners))
92+
case let .retrieveSiteSummaryStats(_, _, _, _, completion):
93+
completion(.failure(NSError(domain: "Test", code: 1)))
94+
default:
95+
break
96+
}
97+
}
98+
99+
// When
100+
await vm.updateData()
101+
102+
// Then
103+
XCTAssertTrue(vm.revenueCard.showSyncError)
104+
XCTAssertTrue(vm.ordersCard.showSyncError)
105+
XCTAssertTrue(vm.productsStatsCard.showStatsError)
106+
107+
XCTAssertFalse(vm.itemsSoldCard.showItemsSoldError)
108+
XCTAssertEqual(vm.itemsSoldCard.itemsSoldData.count, 1)
109+
110+
XCTAssertTrue(vm.sessionsCard.showSyncError)
111+
}
112+
82113
func test_cards_viewmodels_redacted_while_updating_from_network() async {
83114
// Given
84115
let vm = AnalyticsHubViewModel(siteID: 123, statsTimeRange: .thisMonth, usageTracksEventEmitter: eventEmitter, stores: stores)

0 commit comments

Comments
 (0)