File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed
WooCommerceTests/POS/ViewModels Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ final class CartViewModel: CartViewModelProtocol {
4545
4646 func addItemToCart( _ item: POSItem ) {
4747 let cartItem = CartItem ( id: UUID ( ) , item: item, quantity: 1 )
48- itemsInCart. append ( cartItem)
48+ itemsInCart. insert ( cartItem, at : 0 )
4949
5050 analytics. track ( . pointOfSaleAddItemToCart)
5151 }
Original file line number Diff line number Diff line change @@ -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
You can’t perform that action at this time.
0 commit comments