@@ -43,7 +43,7 @@ final class CartViewModelTests: XCTestCase {
4343 sut. submitCart ( )
4444 }
4545
46- func test_cart_when_addItemToCart_is_invoked_then_adds_item_to_cart ( ) {
46+ func test_addItemToCart_then_cart_is_not_empty ( ) {
4747 // Given
4848 XCTAssertTrue ( sut. itemsInCart. isEmpty, " Initial state " )
4949 let item = Self . makeItem ( )
@@ -55,6 +55,19 @@ final class CartViewModelTests: XCTestCase {
5555 XCTAssertTrue ( sut. itemsInCart. isNotEmpty)
5656 }
5757
58+ func test_addItemToCart_when_multiple_items_added_then_latest_item_is_first( ) {
59+ // Given
60+ XCTAssertTrue ( sut. itemsInCart. isEmpty, " Initial state " )
61+ let items = [ Self . makeItem ( ) , Self . makeItem ( ) , Self . makeItem ( ) ]
62+
63+ // When
64+ items. forEach ( sut. addItemToCart)
65+
66+ // Then
67+ XCTAssertEqual ( sut. itemsInCart. map ( \. item. itemID) , items. reversed ( ) . map ( \. itemID) )
68+ XCTAssertNotEqual ( sut. itemsInCart. map ( \. item. itemID) , items. map ( \. itemID) )
69+ }
70+
5871 func test_removeItemFromCart( ) {
5972 /* TODO:
6073 https://github.com/woocommerce/woocommerce-ios/issues/13209
@@ -71,15 +84,15 @@ final class CartViewModelTests: XCTestCase {
7184 sut. addItemToCart ( item)
7285 sut. addItemToCart ( anotherItem)
7386 XCTAssertEqual ( sut. itemsInCart. count, 2 )
74- XCTAssertEqual ( sut. itemsInCart. map { $0. item. name } , [ item , anotherItem ] . map { $0. name } )
87+ XCTAssertEqual ( sut. itemsInCart. map { $0. item. name } , [ anotherItem , item ] . map { $0. name } )
7588
7689 // When
7790 let firstCartItem = try XCTUnwrap ( sut. itemsInCart. first)
7891 sut. removeItemFromCart ( firstCartItem)
7992
8093 // Then
8194 XCTAssertEqual ( sut. itemsInCart. count, 1 )
82- XCTAssertEqual ( sut. itemsInCart. map { $0. item. name } , [ anotherItem . name] )
95+ XCTAssertEqual ( sut. itemsInCart. map { $0. item. name } , [ item . name] )
8396 }
8497
8598 func test_cart_when_removeAllItemsFromCart_is_invoked_then_removes_all_items_from_cart( ) {
0 commit comments