@@ -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