Skip to content

Commit 7b6a21e

Browse files
committed
Update unit tests for performance section
1 parent 9bb4993 commit 7b6a21e

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Coupons/CouponDetailsViewModelTests.swift

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,10 @@ final class CouponDetailsViewModelTests: XCTestCase {
144144
XCTAssertEqual(viewModel.amount, "10%")
145145
}
146146

147-
func test_coupon_performance_is_correct() {
147+
func test_coupon_performance_is_correct_with_usage_count_equal_to_0() {
148148
// Given
149-
let sampleCoupon = Coupon.fake()
150-
let sampleReport = CouponReport.fake().copy(amount: 220.0, ordersCount: 10)
149+
let sampleCoupon = Coupon.fake().copy(usageCount: 0)
150+
let sampleReport = CouponReport.fake().copy(amount: 0, ordersCount: 0)
151151
let stores = MockStoresManager(sessionManager: .makeForTesting())
152152
let viewModel = CouponDetailsViewModel(coupon: sampleCoupon, stores: stores, currencySettings: CurrencySettings())
153153
XCTAssertEqual(viewModel.discountedOrdersCount, "0")
@@ -164,6 +164,31 @@ final class CouponDetailsViewModelTests: XCTestCase {
164164
}
165165
viewModel.loadCouponReport()
166166

167+
// Then
168+
XCTAssertEqual(viewModel.discountedOrdersCount, "0")
169+
XCTAssertEqual(viewModel.discountedAmount, "$0.00")
170+
}
171+
172+
func test_coupon_performance_is_correct_with_usage_count_larger_than_0() {
173+
// Given
174+
let sampleCoupon = Coupon.fake().copy(usageCount: 10)
175+
let sampleReport = CouponReport.fake().copy(amount: 220.0, ordersCount: 10)
176+
let stores = MockStoresManager(sessionManager: .makeForTesting())
177+
let viewModel = CouponDetailsViewModel(coupon: sampleCoupon, stores: stores, currencySettings: CurrencySettings())
178+
XCTAssertEqual(viewModel.discountedOrdersCount, "10")
179+
XCTAssertEqual(viewModel.discountedAmount, nil)
180+
181+
// When
182+
stores.whenReceivingAction(ofType: CouponAction.self) { action in
183+
switch action {
184+
case let .loadCouponReport(_, _, _, onCompletion):
185+
onCompletion(.success(sampleReport))
186+
default:
187+
break
188+
}
189+
}
190+
viewModel.loadCouponReport()
191+
167192
// Then
168193
XCTAssertEqual(viewModel.discountedOrdersCount, "10")
169194
XCTAssertEqual(viewModel.discountedAmount, "$220.00")

0 commit comments

Comments
 (0)