@@ -293,7 +293,7 @@ struct PointOfSaleOrderControllerTests {
293293 if case . success( let state) = result {
294294 #expect( state == . newOrder)
295295 } else {
296- #expect( Bool ( false ) , " Expected success with new order result " )
296+ #expect( Bool ( false ) , " Expected success result with new order " )
297297 }
298298 }
299299
@@ -304,7 +304,6 @@ struct PointOfSaleOrderControllerTests {
304304 receiptService: mockReceiptService)
305305 let fakeOrderItem = OrderItem . fake ( ) . copy ( quantity: 1 )
306306 let fakeOrder = Order . fake ( )
307- let fakeCartItem = makeItem ( orderItemsToMatch: [ fakeOrderItem] )
308307 mockOrderService. orderToReturn = fakeOrder
309308
310309 // When
@@ -318,34 +317,52 @@ struct PointOfSaleOrderControllerTests {
318317 if case . success( let state) = result {
319318 #expect( state == . orderUpdated)
320319 } else {
321- #expect( Bool ( false ) , " Expected success with order updated result " )
320+ #expect( Bool ( false ) , " Expected success result with order updated " )
322321 }
323322 }
324323
325324 @available ( iOS 17 . 0 , * )
326- @Test func syncOrder_when_cart_matching_order_returns_syncFailure ( ) async throws {
327- // Given
328- let sut = PointOfSaleOrderController ( orderService: mockOrderService,
329- receiptService: mockReceiptService)
330- let orderItem = OrderItem . fake ( ) . copy ( quantity: 1 )
331- let fakeOrder = Order . fake ( ) . copy ( items: [ orderItem] )
332- let cartItem = makeItem ( orderItemsToMatch: [ orderItem] )
333- mockOrderService. orderToReturn = fakeOrder
325+ @Test func syncOrder_when_cart_matching_order_then_returns_orderNotChanged_result ( ) async throws {
326+ // Given
327+ let sut = PointOfSaleOrderController ( orderService: mockOrderService,
328+ receiptService: mockReceiptService)
329+ let orderItem = OrderItem . fake ( ) . copy ( quantity: 1 )
330+ let fakeOrder = Order . fake ( ) . copy ( items: [ orderItem] )
331+ let cartItem = makeItem ( orderItemsToMatch: [ orderItem] )
332+ mockOrderService. orderToReturn = fakeOrder
334333
335- // When
336- // 1. Initial order
337- _ = await sut. syncOrder ( for: [ cartItem] , retryHandler: { } )
334+ // When
335+ // 1. Initial order
336+ _ = await sut. syncOrder ( for: [ cartItem] , retryHandler: { } )
338337
339- // 2. Syncing existing order with same cart should fail
340- let result = await sut. syncOrder ( for: [ cartItem] , retryHandler: { } )
338+ // 2. Syncing existing order with same cart should not update order
339+ let result = await sut. syncOrder ( for: [ cartItem] , retryHandler: { } )
341340
342- // Then
343- if case . failure( let error) = result {
344- #expect( error as? SyncOrderStateError == . syncFailure)
345- } else {
346- #expect( Bool ( false ) , " Expected error with syncFailure result " )
347- }
341+ // Then
342+ if case . success( let state) = result {
343+ #expect( state == . orderNotChanged)
344+ } else {
345+ #expect( Bool ( false ) , " Expected success result with no changes to existing order " )
346+ }
347+ }
348+
349+ @available ( iOS 17 . 0 , * )
350+ @Test func syncOrder_when_orderService_fails_then_returns_syncOrderState_failure( ) async throws {
351+ let sut = PointOfSaleOrderController ( orderService: mockOrderService,
352+ receiptService: mockReceiptService)
353+ let cartItem = makeItem ( quantity: 1 )
354+
355+ // When
356+ mockOrderService. orderToReturn = nil
357+ let result = await sut. syncOrder ( for: [ cartItem] , retryHandler: { } )
358+
359+ // Then
360+ if case . failure( let error) = result {
361+ #expect( error as? SyncOrderStateError == . syncFailure)
362+ } else {
363+ #expect( Bool ( false ) , " Expected sync failure but got \( result) " )
348364 }
365+ }
349366
350367 struct AnalyticsTests {
351368 private let analytics : WooAnalytics
0 commit comments