Skip to content

Commit d025922

Browse files
committed
Add unit tests for cases.
1 parent 2eba65b commit d025922

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Orders/OrderListViewModelTests.swift

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -558,17 +558,17 @@ final class OrderListViewModelTests: XCTestCase {
558558
}
559559
}
560560

561-
func test_feedback_status_when_IPPFeedbackBannerWasSubmitted_is_called_then_feedback_status_is_not_nil() {
561+
func test_IPPFeedbackBannerWasSubmitted_then_it_calls_updateFeedbackStatus_with_right_parameters() {
562562
// Given
563563
let viewModel = OrderListViewModel(siteID: siteID, stores: stores, filters: nil)
564564
var updatedFeedbackStatus: FeedbackSettings.Status?
565+
var receivedFeedbackType: FeedbackType?
565566

566567
// When
567568
stores.whenReceivingAction(ofType: AppSettingsAction.self) { action in
568569
switch action {
569-
case let .loadFeedbackVisibility(.inPersonPayments, onCompletion):
570-
onCompletion(.success(true))
571-
case let .updateFeedbackStatus(.inPersonPayments, status, onCompletion):
570+
case let .updateFeedbackStatus(type, status, onCompletion):
571+
receivedFeedbackType = type
572572
updatedFeedbackStatus = status
573573
onCompletion(.success(()))
574574
default:
@@ -580,57 +580,62 @@ final class OrderListViewModelTests: XCTestCase {
580580
viewModel.IPPFeedbackBannerWasSubmitted()
581581

582582
// Then
583-
assertEqual(2, stores.receivedActions.count)
584-
XCTAssertTrue(stores.receivedActions.contains(where: {
585-
$0 is AppSettingsAction
586-
}))
587-
XCTAssertNotNil(updatedFeedbackStatus)
583+
XCTAssertTrue(viewModel.hideIPPFeedbackBanner)
584+
585+
XCTAssertEqual(receivedFeedbackType, .inPersonPayments)
586+
587+
switch updatedFeedbackStatus {
588+
case .given:
589+
break
590+
default:
591+
XCTFail()
592+
}
588593
}
589594

590-
func test_feedback_status_when_IPPFeedbackBannerWasSubmitted_is_not_called_then_feedback_status_is_nil() {
595+
func test_IPPFeedbackBannerWasSubmitted_then_it_calls_setFeatureAnnouncementDismissed_with_right_parameters() {
591596
// Given
592597
let viewModel = OrderListViewModel(siteID: siteID, stores: stores, filters: nil)
593-
var feedbackStatus: FeedbackSettings.Status?
598+
var receivedCampaign: FeatureAnnouncementCampaign?
599+
var receivedRemindAfterDays: Int?
594600

595601
// When
596602
stores.whenReceivingAction(ofType: AppSettingsAction.self) { action in
597603
switch action {
598-
case let .updateFeedbackStatus(.inPersonPayments, status, onCompletion):
599-
feedbackStatus = status
600-
onCompletion(.success(()))
604+
case let .setFeatureAnnouncementDismissed(campaign, remindAfterDays, _):
605+
receivedRemindAfterDays = remindAfterDays
606+
receivedCampaign = campaign
601607
default:
602608
break
603609
}
604610
}
611+
605612
viewModel.activate()
613+
viewModel.IPPFeedbackBannerWasSubmitted()
606614

607615
// Then
608-
assertEqual(nil, feedbackStatus)
616+
XCTAssertEqual(receivedCampaign, .inPersonPaymentsPowerUsers)
617+
XCTAssertNil(receivedRemindAfterDays)
609618
}
610619

611-
func test_feedback_type_when_IPPFeedbackBannerWasSubmitted_is_called_then_feedback_type_is_IPP() {
620+
func test_feedback_status_when_IPPFeedbackBannerWasSubmitted_is_not_called_then_feedback_status_is_nil() {
612621
// Given
613622
let viewModel = OrderListViewModel(siteID: siteID, stores: stores, filters: nil)
614-
var feedbackType: FeedbackType?
623+
var feedbackStatus: FeedbackSettings.Status?
615624

616625
// When
617626
stores.whenReceivingAction(ofType: AppSettingsAction.self) { action in
618627
switch action {
619-
case let .loadFeedbackVisibility(type, onCompletion):
620-
feedbackType = type
621-
onCompletion(.success(true))
622-
case let .updateFeedbackStatus(.inPersonPayments, _, onCompletion):
623-
feedbackType = .inPersonPayments
628+
case let .updateFeedbackStatus(.inPersonPayments, status, onCompletion):
629+
feedbackStatus = status
624630
onCompletion(.success(()))
625631
default:
626632
break
627633
}
628634
}
629635
viewModel.activate()
630-
viewModel.IPPFeedbackBannerWasSubmitted()
631636

632637
// Then
633-
XCTAssertEqual(feedbackType, .inPersonPayments)
638+
assertEqual(nil, feedbackStatus)
634639
}
635640
}
636641

0 commit comments

Comments
 (0)