@@ -9,13 +9,15 @@ final class OrderDetailsViewModelTests: XCTestCase {
99 private var viewModel : OrderDetailsViewModel !
1010
1111 private var storesManager : MockStoresManager !
12+ private var storageManager : MockStorageManager !
1213
1314 override func setUp( ) {
1415 storesManager = MockStoresManager ( sessionManager: SessionManager . makeForTesting ( ) )
16+ storageManager = MockStorageManager ( )
1517
1618 order = MockOrders ( ) . sampleOrder ( )
1719
18- viewModel = OrderDetailsViewModel ( order: order, stores: storesManager)
20+ viewModel = OrderDetailsViewModel ( order: order, stores: storesManager, storageManager : storageManager )
1921
2022 let analytics = WooAnalytics ( analyticsProvider: MockAnalyticsProvider ( ) )
2123 ServiceLocator . setAnalytics ( analytics)
@@ -73,16 +75,35 @@ final class OrderDetailsViewModelTests: XCTestCase {
7375
7476 func test_checkShippingLabelCreationEligibility_dispatches_correctly( ) throws {
7577 // Given
78+
79+ // Make sure the are plugins synced
80+ let plugin = SystemPlugin . fake ( ) . copy ( siteID: order. siteID, name: SitePlugin . SupportedPlugin. WCShip, active: true )
81+ storageManager. insertSampleSystemPlugin ( readOnlySystemPlugin: plugin)
82+
7683 storesManager. reset ( )
7784 XCTAssertEqual ( storesManager. receivedActions. count, 0 )
7885
7986 // When
80- viewModel. checkShippingLabelCreationEligibility ( )
87+ waitForExpectation { exp in
88+
89+ // Return the active WCShip plugin.
90+ storesManager. whenReceivingAction ( ofType: SystemStatusAction . self) { action in
91+ switch action {
92+ case . fetchSystemPlugin( _, _, let onCompletion) :
93+ onCompletion ( plugin)
94+ exp. fulfill ( )
95+ default :
96+ break
97+ }
98+ }
99+
100+ viewModel. checkShippingLabelCreationEligibility ( )
101+ }
81102
82103 // Then
83- XCTAssertEqual ( storesManager. receivedActions. count, 1 )
104+ XCTAssertEqual ( storesManager. receivedActions. count, 2 )
84105
85- let action = try XCTUnwrap ( storesManager. receivedActions. first as? ShippingLabelAction )
106+ let action = try XCTUnwrap ( storesManager. receivedActions. last as? ShippingLabelAction )
86107 guard case let ShippingLabelAction . checkCreationEligibility( siteID: siteID,
87108 orderID: orderID,
88109 onCompletion: _) = action else {
0 commit comments