Skip to content

Commit b059e51

Browse files
committed
Added check, test case and minor fixes
1 parent e4d9a05 commit b059e51

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

app/code/Magento/GiftMessageGraphQl/Model/Resolver/Cart/GiftMessage.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Magento\Framework\GraphQl\Query\ResolverInterface;
1616
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1717
use Magento\GiftMessage\Api\CartRepositoryInterface;
18+
use Magento\GiftMessage\Helper\Message as GiftMessageHelper;
1819

1920
/**
2021
* Class provides ability to get GiftMessage for cart
@@ -27,14 +28,20 @@ class GiftMessage implements ResolverInterface
2728
private $cartRepository;
2829

2930
/**
30-
* GiftMessage constructor.
31-
*
31+
* @var GiftMessageHelper
32+
*/
33+
private $giftMessageHelper;
34+
35+
/**
3236
* @param CartRepositoryInterface $cartRepository
37+
* @param GiftMessageHelper $giftMessageHelper
3338
*/
3439
public function __construct(
35-
CartRepositoryInterface $cartRepository
40+
CartRepositoryInterface $cartRepository,
41+
GiftMessageHelper $giftMessageHelper
3642
) {
3743
$this->cartRepository = $cartRepository;
44+
$this->giftMessageHelper = $giftMessageHelper;
3845
}
3946

4047
/**
@@ -61,8 +68,13 @@ public function resolve(
6168
if (!isset($value['model'])) {
6269
throw new GraphQlInputException(__('"model" value should be specified'));
6370
}
71+
6472
$cart = $value['model'];
6573

74+
if (!$this->giftMessageHelper->isMessagesAllowed('order', $cart)) {
75+
return null;
76+
}
77+
6678
try {
6779
$giftCartMessage = $this->cartRepository->get($cart->getId());
6880
} catch (LocalizedException $e) {

dev/tests/api-functional/testsuite/Magento/GraphQl/GiftMessage/Cart/GiftMessageTest.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@ class GiftMessageTest extends GraphQlAbstract
2020
*/
2121
private $getMaskedQuoteIdByReservedOrderId;
2222

23-
protected function setUp()
23+
protected function setUp(): void
2424
{
2525
$objectManager = Bootstrap::getObjectManager();
2626
$this->getMaskedQuoteIdByReservedOrderId = $objectManager->get(GetMaskedQuoteIdByReservedOrderId::class);
2727
}
2828

2929
/**
30+
* @magentoConfigFixture default_store sales/gift_options/allow_order 1
3031
* @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_message.php
3132
* @throws NoSuchEntityException
3233
* @throws Exception
@@ -41,6 +42,20 @@ public function testGiftMessageForCart()
4142
self::assertSame('I thought all for the best.', $response['cart']['gift_message']['message']);
4243
}
4344

45+
/**
46+
* @magentoConfigFixture default_store sales/gift_options/allow_order 0
47+
* @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_message.php
48+
* @throws NoSuchEntityException
49+
* @throws Exception
50+
*/
51+
public function testGiftMessageForCartWithNotAllow()
52+
{
53+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('message_order_21');
54+
$response = $this->requestCartAndAssertResult($maskedQuoteId);
55+
self::assertArrayHasKey('gift_message', $response['cart']);
56+
self::assertNull($response['cart']['gift_message']);
57+
}
58+
4459
/**
4560
* @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php
4661
* @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php

0 commit comments

Comments
 (0)