diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/UpdateCartItems.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/UpdateCartItems.php
index 1dfbb7cb9fb8..f5226aa8833d 100644
--- a/app/code/Magento/QuoteGraphQl/Model/Resolver/UpdateCartItems.php
+++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/UpdateCartItems.php
@@ -1,74 +1,118 @@
 <?php
-declare(strict_types=1);
 /**
  * Copyright © Magento, Inc. All rights reserved.
  * See COPYING.txt for license details.
  */
+declare(strict_types=1);
+
 namespace Magento\QuoteGraphQl\Model\Resolver;
 
+use Magento\Framework\Exception\LocalizedException;
 use Magento\Framework\Exception\NoSuchEntityException;
 use Magento\Framework\GraphQl\Config\Element\Field;
 use Magento\Framework\GraphQl\Exception\GraphQlInputException;
 use Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException;
 use Magento\Framework\GraphQl\Query\ResolverInterface;
 use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
-use Magento\Quote\Api\GuestCartRepositoryInterface;
-use Magento\QuoteGraphQl\Model\Cart\ExtractDataFromCart;
-use Magento\Framework\Stdlib\ArrayManager;
-use Magento\QuoteGraphQl\Model\Cart\UpdateCartItems as UpdateCartItemsService;
+use Magento\Quote\Api\CartItemRepositoryInterface;
+use Magento\Quote\Model\Quote;
+use Magento\QuoteGraphQl\Model\Cart\GetCartForUser;
 
+/**
+ * @inheritdoc
+ */
 class UpdateCartItems implements ResolverInterface
 {
     /**
-     * @var ExtractDataFromCart
+     * @var GetCartForUser
      */
-    private $extractDataFromCart;
+    private $getCartForUser;
 
     /**
-     * @var ArrayManager
+     * @var CartItemRepositoryInterface
      */
-    private $arrayManager;
+    private $cartItemRepository;
 
     /**
-     * @var UpdateCartItemsService
-     */
-    private $updateCartItems;
-
-    /**
-     * @param ExtractDataFromCart $extractDataFromCart
-     * @param ArrayManager $arrayManager
-     * @param UpdateCartItemsService $updateCartItems
+     * @param GetCartForUser $getCartForUser
+     * @param CartItemRepositoryInterface $cartItemRepository
      */
     public function __construct(
-        ExtractDataFromCart $extractDataFromCart,
-        ArrayManager $arrayManager,
-        UpdateCartItemsService $updateCartItems
+        GetCartForUser $getCartForUser,
+        CartItemRepositoryInterface $cartItemRepository
     ) {
-        $this->extractDataFromCart = $extractDataFromCart;
-        $this->arrayManager = $arrayManager;
-        $this->updateCartItems = $updateCartItems;
+        $this->getCartForUser = $getCartForUser;
+        $this->cartItemRepository = $cartItemRepository;
     }
 
+    /**
+     * @inheritdoc
+     */
     public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null)
     {
-        $cartItems = $this->arrayManager->get('input/cart_items', $args);
-        $maskedCartId = $this->arrayManager->get('input/cart_id', $args);
-
-        if (!$maskedCartId) {
+        if (!isset($args['input']['cart_id']) || empty($args['input']['cart_id'])) {
             throw new GraphQlInputException(__('Required parameter "cart_id" is missing'));
         }
-        if (!$cartItems) {
-            throw new GraphQlInputException(__('Required parameter "cart_items  " is missing'));
+        $maskedCartId = $args['input']['cart_id'];
+
+        if (!isset($args['input']['cart_items']) || empty($args['input']['cart_items'])
+            || !is_array($args['input']['cart_items'])
+        ) {
+            throw new GraphQlInputException(__('Required parameter "cart_items" is missing'));
         }
+        $cartItems = $args['input']['cart_items'];
+
+        $cart = $this->getCartForUser->execute($maskedCartId, $context->getUserId());
 
         try {
-            $cart = $this->updateCartItems->update($maskedCartId, $cartItems);
+            $this->processCartItems($cart, $cartItems);
         } catch (NoSuchEntityException $e) {
-            throw new GraphQlNoSuchEntityException(__($e->getMessage()));
+            throw new GraphQlNoSuchEntityException(__($e->getMessage()), $e);
+        } catch (LocalizedException $e) {
+            throw new GraphQlInputException(__($e->getMessage()), $e);
         }
 
-        $cartData = $this->extractDataFromCart->execute($cart);
+        return [
+            'cart' => [
+                'model' => $cart,
+            ],
+        ];
+    }
+
+    /**
+     * Process cart items
+     *
+     * @param Quote $cart
+     * @param array $items
+     * @throws GraphQlInputException
+     * @throws LocalizedException
+     */
+    private function processCartItems(Quote $cart, array $items): void
+    {
+        foreach ($items as $item) {
+            if (!isset($item['cart_item_id']) || empty($item['cart_item_id'])) {
+                throw new GraphQlInputException(__('Required parameter "cart_item_id" for "cart_items" is missing.'));
+            }
+            $itemId = $item['cart_item_id'];
+
+            if (!isset($item['quantity'])) {
+                throw new GraphQlInputException(__('Required parameter "quantity" for "cart_items" is missing.'));
+            }
+            $qty = (float)$item['quantity'];
 
-        return ['cart' => array_merge(['cart_id' => $maskedCartId], $cartData)];
+            $cartItem = $cart->getItemById($itemId);
+            if ($cartItem === false) {
+                throw new GraphQlNoSuchEntityException(
+                    __('Could not find cart item with id: %1.', $item['cart_item_id'])
+                );
+            }
+
+            if ($qty <= 0.0) {
+                $this->cartItemRepository->deleteById((int)$cart->getId(), $itemId);
+            } else {
+                $cartItem->setQty($qty);
+                $this->cartItemRepository->save($cartItem);
+            }
+        }
     }
 }
diff --git a/app/code/Magento/QuoteGraphQl/etc/schema.graphqls b/app/code/Magento/QuoteGraphQl/etc/schema.graphqls
index f5b15212a220..194848b78915 100644
--- a/app/code/Magento/QuoteGraphQl/etc/schema.graphqls
+++ b/app/code/Magento/QuoteGraphQl/etc/schema.graphqls
@@ -56,12 +56,7 @@ input ApplyCouponToCartInput {
 
 input UpdateCartItemsInput {
     cart_id: String!
-    cart_items: [UpdateCartItemInput!]!
-}
-
-input UpdateCartItemInput {
-    item_id: String!
-    qty: Float!
+    cart_items: [CartItemQuantityInput!]!
 }
 
 input RemoveItemFromCartInput {
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
index a351a2188a66..4209273fb2ed 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
@@ -75,20 +75,24 @@ public function testRemoveItemFromCart()
 
     /**
      * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
      * @expectedException \Exception
      * @expectedExceptionMessage Could not find a cart with ID "non_existent_masked_id"
      */
     public function testRemoveItemFromNonExistentCart()
     {
-        $query = $this->prepareMutationQuery('non_existent_masked_id', 1);
+        $quote = $this->quoteFactory->create();
+        $this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
+        $itemId = (int)$quote->getItemByProduct($this->productRepository->get('simple'))->getId();
 
+        $query = $this->prepareMutationQuery('non_existent_masked_id', $itemId);
         $this->graphQlQuery($query, [], '', $this->getHeaderMap());
     }
 
     /**
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
      */
-    public function testRemoveNotExistentItem()
+    public function testRemoveNonExistentItem()
     {
         $quote = $this->quoteFactory->create();
         $this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php
new file mode 100644
index 000000000000..206faf571b3a
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php
@@ -0,0 +1,258 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\GraphQl\Quote\Customer;
+
+use Magento\Catalog\Api\ProductRepositoryInterface;
+use Magento\Integration\Api\CustomerTokenServiceInterface;
+use Magento\Quote\Model\QuoteFactory;
+use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
+use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
+use Magento\TestFramework\Helper\Bootstrap;
+use Magento\TestFramework\TestCase\GraphQlAbstract;
+
+/**
+ * Test for updating shopping cart items
+ */
+class UpdateCartItemsTest extends GraphQlAbstract
+{
+    /**
+     * @var CustomerTokenServiceInterface
+     */
+    private $customerTokenService;
+
+    /**
+     * @var QuoteResource
+     */
+    private $quoteResource;
+
+    /**
+     * @var QuoteFactory
+     */
+    private $quoteFactory;
+
+    /**
+     * @var QuoteIdToMaskedQuoteIdInterface
+     */
+    private $quoteIdToMaskedId;
+
+    /**
+     * @var ProductRepositoryInterface
+     */
+    private $productRepository;
+
+    protected function setUp()
+    {
+        $objectManager = Bootstrap::getObjectManager();
+        $this->quoteResource = $objectManager->get(QuoteResource::class);
+        $this->quoteFactory = $objectManager->get(QuoteFactory::class);
+        $this->quoteIdToMaskedId = $objectManager->get(QuoteIdToMaskedQuoteIdInterface::class);
+        $this->customerTokenService = $objectManager->get(CustomerTokenServiceInterface::class);
+        $this->productRepository = $objectManager->get(ProductRepositoryInterface::class);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testUpdateCartItemQty()
+    {
+        $quote = $this->quoteFactory->create();
+        $this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
+        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$quote->getId());
+        $itemId = (int)$quote->getItemByProduct($this->productRepository->get('simple'))->getId();
+        $qty = 2;
+
+        $query = $this->getQuery($maskedQuoteId, $itemId, $qty);
+        $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+
+        $this->assertArrayHasKey('updateCartItems', $response);
+        $this->assertArrayHasKey('cart', $response['updateCartItems']);
+
+        $responseCart = $response['updateCartItems']['cart'];
+        $item = current($responseCart['items']);
+
+        $this->assertEquals($itemId, $item['id']);
+        $this->assertEquals($qty, $item['qty']);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testRemoveCartItemIfQuantityIsZero()
+    {
+        $quote = $this->quoteFactory->create();
+        $this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
+        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$quote->getId());
+        $itemId = (int)$quote->getItemByProduct($this->productRepository->get('simple'))->getId();
+        $qty = 0;
+
+        $query = $this->getQuery($maskedQuoteId, $itemId, $qty);
+        $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+
+        $this->assertArrayHasKey('updateCartItems', $response);
+        $this->assertArrayHasKey('cart', $response['updateCartItems']);
+
+        $responseCart = $response['updateCartItems']['cart'];
+        $this->assertCount(0, $responseCart['items']);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Could not find a cart with ID "non_existent_masked_id"
+     */
+    public function testUpdateItemInNonExistentCart()
+    {
+        $quote = $this->quoteFactory->create();
+        $this->quoteResource->load($quote, 'test_order_with_simple_product_without_address', 'reserved_order_id');
+        $itemId = (int)$quote->getItemByProduct($this->productRepository->get('simple'))->getId();
+
+        $query = $this->getQuery('non_existent_masked_id', $itemId, 2);
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testUpdateNonExistentItem()
+    {
+        $quote = $this->quoteFactory->create();
+        $this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
+        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$quote->getId());
+        $notExistentItemId = 999;
+
+        $this->expectExceptionMessage("Could not find cart item with id: {$notExistentItemId}.");
+
+        $query = $this->getQuery($maskedQuoteId, $notExistentItemId, 2);
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
+     */
+    public function testUpdateItemIfItemIsNotBelongToCart()
+    {
+        $firstQuote = $this->quoteFactory->create();
+        $this->quoteResource->load($firstQuote, 'test_order_1', 'reserved_order_id');
+        $firstQuoteMaskedId = $this->quoteIdToMaskedId->execute((int)$firstQuote->getId());
+
+        $secondQuote = $this->quoteFactory->create();
+        $this->quoteResource->load(
+            $secondQuote,
+            'test_order_with_virtual_product_without_address',
+            'reserved_order_id'
+        );
+        $secondQuote->setCustomerId(1);
+        $this->quoteResource->save($secondQuote);
+        $secondQuoteItemId = (int)$secondQuote
+            ->getItemByProduct($this->productRepository->get('virtual-product'))
+            ->getId();
+
+        $this->expectExceptionMessage("Could not find cart item with id: {$secondQuoteItemId}.");
+
+        $query = $this->getQuery($firstQuoteMaskedId, $secondQuoteItemId, 2);
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
+     */
+    public function testUpdateItemInGuestCart()
+    {
+        $guestQuote = $this->quoteFactory->create();
+        $this->quoteResource->load(
+            $guestQuote,
+            'test_order_with_virtual_product_without_address',
+            'reserved_order_id'
+        );
+        $guestQuoteMaskedId = $this->quoteIdToMaskedId->execute((int)$guestQuote->getId());
+        $guestQuoteItemId = (int)$guestQuote
+            ->getItemByProduct($this->productRepository->get('virtual-product'))
+            ->getId();
+
+        $this->expectExceptionMessage(
+            "The current user cannot perform operations on cart \"$guestQuoteMaskedId\""
+        );
+
+        $query = $this->getQuery($guestQuoteMaskedId, $guestQuoteItemId, 2);
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/three_customers.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
+     */
+    public function testUpdateItemInAnotherCustomerCart()
+    {
+        $anotherCustomerQuote = $this->quoteFactory->create();
+        $this->quoteResource->load(
+            $anotherCustomerQuote,
+            'test_order_with_virtual_product_without_address',
+            'reserved_order_id'
+        );
+        $anotherCustomerQuote->setCustomerId(2);
+        $this->quoteResource->save($anotherCustomerQuote);
+
+        $anotherCustomerQuoteMaskedId = $this->quoteIdToMaskedId->execute((int)$anotherCustomerQuote->getId());
+        $anotherCustomerQuoteItemId = (int)$anotherCustomerQuote
+            ->getItemByProduct($this->productRepository->get('virtual-product'))
+            ->getId();
+
+        $this->expectExceptionMessage(
+            "The current user cannot perform operations on cart \"$anotherCustomerQuoteMaskedId\""
+        );
+
+        $query = $this->getQuery($anotherCustomerQuoteMaskedId, $anotherCustomerQuoteItemId, 2);
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @param string $maskedQuoteId
+     * @param int $itemId
+     * @param float $qty
+     * @return string
+     */
+    private function getQuery(string $maskedQuoteId, int $itemId, float $qty): string
+    {
+        return <<<QUERY
+mutation {
+  updateCartItems(input: {
+    cart_id: "{$maskedQuoteId}"
+    cart_items:[
+      {
+        cart_item_id: {$itemId}
+        quantity: {$qty}
+      }
+    ]
+  }) {
+    cart {
+      items {
+        id
+        qty
+      }
+    }
+  }
+}
+QUERY;
+    }
+
+    /**
+     * @param string $username
+     * @param string $password
+     * @return array
+     */
+    private function getHeaderMap(string $username = 'customer@example.com', string $password = 'password'): array
+    {
+        $customerToken = $this->customerTokenService->createCustomerAccessToken($username, $password);
+        $headerMap = ['Authorization' => 'Bearer ' . $customerToken];
+        return $headerMap;
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/RemoveItemFromCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/RemoveItemFromCartTest.php
index a6b8f05fc083..f773c2b5111d 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/RemoveItemFromCartTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/RemoveItemFromCartTest.php
@@ -80,7 +80,7 @@ public function testRemoveItemFromNonExistentCart()
     /**
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
      */
-    public function testRemoveNotExistentItem()
+    public function testRemoveNonExistentItem()
     {
         $quote = $this->quoteFactory->create();
         $this->quoteResource->load($quote, 'test_order_with_simple_product_without_address', 'reserved_order_id');
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/UpdateCartItemsTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/UpdateCartItemsTest.php
deleted file mode 100644
index ffc4370d7ff5..000000000000
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/UpdateCartItemsTest.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-/**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
-declare(strict_types=1);
-
-namespace Magento\GraphQl\Quote;
-
-use Magento\Catalog\Api\ProductRepositoryInterface;
-use Magento\Framework\ObjectManagerInterface;
-use Magento\Quote\Model\Quote;
-use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
-use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
-use Magento\TestFramework\Helper\Bootstrap;
-use Magento\TestFramework\TestCase\GraphQlAbstract;
-
-/**
- * Test for updating/removing shopping cart items
- */
-class UpdateCartItemsTest extends GraphQlAbstract
-{
-    /**
-     * @var ObjectManagerInterface
-     */
-    private $objectManager;
-
-    /**
-     * @var QuoteResource
-     */
-    private $quoteResource;
-
-    /**
-     * @var Quote
-     */
-    private $quote;
-
-    /**
-     * @var QuoteIdToMaskedQuoteIdInterface
-     */
-    private $quoteIdToMaskedId;
-
-    /**
-     * @var ProductRepositoryInterface
-     */
-    private $productRepository;
-
-    protected function setUp()
-    {
-        $this->objectManager = Bootstrap::getObjectManager();
-        $this->quoteResource = $this->objectManager->create(QuoteResource::class);
-        $this->quote = $this->objectManager->create(Quote::class);
-        $this->quoteIdToMaskedId = $this->objectManager->get(QuoteIdToMaskedQuoteIdInterface::class);
-        $this->productRepository = $this->objectManager->get(ProductRepositoryInterface::class);
-    }
-
-    /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
-     */
-    public function testUpdateCartItemQty()
-    {
-        $this->quoteResource->load(
-            $this->quote,
-            'test_order_with_simple_product_without_address',
-            'reserved_order_id'
-        );
-        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$this->quote->getId());
-        $quoteItem = $this->quote->getItemByProduct($this->productRepository->get('simple'));
-        $qty = $quoteItem->getQty() + 2;
-
-        $query = $this->prepareUpdateItemsQuery($maskedQuoteId, (string) $quoteItem->getItemId(), $qty);
-        $response = $this->graphQlQuery($query);
-
-        $this->assertArrayHasKey('updateCartItems', $response);
-        $this->assertArrayHasKey('cart', $response['updateCartItems']);
-
-        $responseCart = $response['updateCartItems']['cart'];
-        $item = current($responseCart['items']);
-
-        $this->assertEquals($quoteItem->getItemId(), $item['id']);
-        $this->assertEquals($qty, $item['qty']);
-    }
-
-    /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
-     */
-    public function testRemoveCartItemByZeroQuantityUpdate()
-    {
-        $this->quoteResource->load(
-            $this->quote,
-            'test_order_with_simple_product_without_address',
-            'reserved_order_id'
-        );
-        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$this->quote->getId());
-        $quoteItem = $this->quote->getItemByProduct($this->productRepository->get('simple'));
-
-        $query = $this->prepareUpdateItemsQuery($maskedQuoteId, (string) $quoteItem->getItemId(), 0);
-        $response = $this->graphQlQuery($query);
-
-        $this->assertArrayHasKey('updateCartItems', $response);
-        $this->assertArrayHasKey('cart', $response['updateCartItems']);
-
-        $responseCart = $response['updateCartItems']['cart'];
-        $this->assertCount(0, $responseCart['items']);
-    }
-
-    /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
-     * @expectedException \Exception
-     * @expectedExceptionMessage Could not find cart item with id
-     */
-    public function testUpdateCartItemNoSuchItemEntity()
-    {
-        $this->quoteResource->load(
-            $this->quote,
-            'test_order_with_simple_product_without_address',
-            'reserved_order_id'
-        );
-        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$this->quote->getId());
-
-        $query = $this->prepareUpdateItemsQuery($maskedQuoteId, '999', 4);
-        $this->graphQlQuery($query);
-    }
-
-    /**
-     * Test mutation is only able to update quote items belonging to the requested cart
-     *
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
-     * @expectedException \Exception
-     * @expectedExceptionMessage Could not find cart item with id
-     */
-    public function testUpdateItemFromDifferentQuote()
-    {
-        /** @var Quote $secondQuote */
-        $secondQuote = $this->objectManager->create(Quote::class);
-        $this->quoteResource->load(
-            $secondQuote,
-            'test_order_with_virtual_product_without_address',
-            'reserved_order_id'
-        );
-        $secondQuoteItem = $secondQuote->getItemByProduct($this->productRepository->get('virtual-product'));
-
-        $this->quoteResource->load(
-            $this->quote,
-            'test_order_with_simple_product_without_address',
-            'reserved_order_id'
-        );
-        $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$this->quote->getId());
-
-        $query = $this->prepareUpdateItemsQuery($maskedQuoteId, $secondQuoteItem->getId(), 4);
-        $this->graphQlQuery($query);
-    }
-
-    private function prepareUpdateItemsQuery(string $maskedQuoteId, string $itemId, float $qty): string
-    {
-        return <<<QUERY
-mutation {
-  updateCartItems(input:{
-    cart_id:"$maskedQuoteId"
-    cart_items:[
-      {
-        item_id:"$itemId"
-        qty: $qty
-      }
-    ]
-  }) {
-    cart {
-      cart_id
-      items {
-        id
-        qty
-      }
-    }
-  }
-}
-QUERY;
-    }
-}