Skip to content

Commit 30ac6b5

Browse files
author
Oleksandr Iegorov
committed
MC-38900: GraphQL Mutation setGuestEmailOnCart doesn't update quote address
1 parent 82e59ff commit 30ac6b5

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/SetGuestEmailOnCartTest.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
namespace Magento\GraphQl\Quote\Guest;
99

1010
use Magento\GraphQl\Quote\GetMaskedQuoteIdByReservedOrderId;
11+
use Magento\Quote\Model\Quote\Address;
12+
use Magento\Quote\Model\QuoteFactory;
13+
use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
1114
use Magento\TestFramework\Helper\Bootstrap;
1215
use Magento\TestFramework\TestCase\GraphQlAbstract;
1316

@@ -21,10 +24,22 @@ class SetGuestEmailOnCartTest extends GraphQlAbstract
2124
*/
2225
private $getMaskedQuoteIdByReservedOrderId;
2326

27+
/**
28+
* @var QuoteFactory
29+
*/
30+
private $quoteFactory;
31+
32+
/**
33+
* @var QuoteResource
34+
*/
35+
private $quoteResource;
36+
2437
protected function setUp(): void
2538
{
2639
$objectManager = Bootstrap::getObjectManager();
2740
$this->getMaskedQuoteIdByReservedOrderId = $objectManager->get(GetMaskedQuoteIdByReservedOrderId::class);
41+
$this->quoteFactory = $objectManager->get(QuoteFactory::class);
42+
$this->quoteResource = $objectManager->get(QuoteResource::class);
2843
}
2944

3045
/**
@@ -43,6 +58,32 @@ public function testSetGuestEmailOnCart()
4358
$this->assertEquals($email, $response['setGuestEmailOnCart']['cart']['email']);
4459
}
4560

61+
/**
62+
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php
63+
*/
64+
public function testSetGuestEmailOnCartWithDifferentEmailAddress()
65+
{
66+
$reservedOrderId = 'test_quote';
67+
$secondEmail = 'attempt2@example.com';
68+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute($reservedOrderId);
69+
70+
$email = 'attempt1@example.com';
71+
$query = $this->getQuery($maskedQuoteId, $email);
72+
$this->graphQlMutation($query);
73+
74+
$query = $this->getQuery($maskedQuoteId, $secondEmail);
75+
$this->graphQlMutation($query);
76+
77+
$quote = $this->quoteFactory->create();
78+
$this->quoteResource->load($quote, $reservedOrderId, 'reserved_order_id');
79+
$addresses = $quote->getAddressesCollection();
80+
foreach ($addresses as $address) {
81+
if ($address->getAddressType() === Address::ADDRESS_TYPE_SHIPPING) {
82+
$this->assertEquals($secondEmail, $address->getEmail());
83+
}
84+
}
85+
}
86+
4687
/**
4788
* _security
4889
* @magentoApiDataFixture Magento/Customer/_files/customer.php

0 commit comments

Comments
 (0)