88namespace Magento \GraphQl \Quote ;
99
1010use Magento \Catalog \Api \ProductRepositoryInterface ;
11- use Magento \Catalog \Model \Product ;
1211use Magento \Catalog \Test \Fixture \Attribute as AttributeFixture ;
1312use Magento \Catalog \Test \Fixture \Product as ProductFixture ;
1413use Magento \Framework \Exception \NoSuchEntityException ;
@@ -57,37 +56,43 @@ protected function setUp(): void
5756 * @throws \Exception
5857 */
5958 #[
60- DataFixture(AttributeFixture::class, ['attribute_code ' => ' prod_attr ' ], as: 'attr ' ),
61- DataFixture(ProductFixture::class, ['attribute_set_id ' => 13 ], as: 'product ' ),
59+ DataFixture(AttributeFixture::class, ['is_visible_on_front ' => true ], as: 'attr ' ),
60+ DataFixture(ProductFixture::class, ['attribute_set_id ' => 4 ], as: 'product ' ),
6261 DataFixture(GuestCartFixture::class, as: 'cart ' ),
6362 ]
6463 public function testAddProductsToEmptyCartWithVariables (): void
6564 {
66- /** @var Product $product */
65+ $ attribute = $ this -> fixtures -> get ( ' attr ' );
6766 $ product = $ this ->fixtures ->get ('product ' );
68- $ product ->setData ( ' prod_attr ' , 'default_value ' );
67+ $ product ->setCustomAttribute ( $ attribute -> getAttributeCode () , 'default_value ' );
6968 $ this ->productRepository ->save ($ product );
69+
70+ $ this ->cleanCache ();
71+
7072 $ cart = $ this ->fixtures ->get ('cart ' );
7173 $ maskedQuoteId = $ this ->quoteIdToMaskedQuoteIdInterface ->execute ((int ) $ cart ->getId ());
72- $ query = $ this ->getAddToCartMutation ();
74+ $ query = $ this ->getAddToCartMutation ($ attribute -> getAttributeCode () );
7375 $ variables = $ this ->getAddToCartVariables ($ maskedQuoteId , 1 , $ product ->getSku ());
7476 $ response = $ this ->graphQlMutation ($ query , $ variables );
7577 $ result = $ response ['addProductsToCart ' ];
78+
7679 self ::assertEmpty ($ result ['user_errors ' ]);
7780 self ::assertCount (1 , $ result ['cart ' ]['items ' ]);
7881
7982 $ cartItem = $ result ['cart ' ]['items ' ][0 ];
8083 self ::assertEquals ($ product ->getSku (), $ cartItem ['product ' ]['sku ' ]);
84+ self ::assertEquals ('default_value ' , $ cartItem ['product ' ][$ attribute ->getAttributeCode ()]);
8185 self ::assertEquals (1 , $ cartItem ['quantity ' ]);
8286 self ::assertEquals ($ product ->getFinalPrice (), $ cartItem ['prices ' ]['price ' ]['value ' ]);
8387 }
8488
8589 /**
8690 * Returns GraphQl mutation for adding item to cart
8791 *
92+ * @param string $customAttributeCode
8893 * @return string
8994 */
90- private function getAddToCartMutation (): string
95+ private function getAddToCartMutation (string $ customAttributeCode ): string
9196 {
9297 return <<<MUTATION
9398mutation ( \$cartId: String!, \$products: [CartItemInput!]!) {
@@ -100,6 +105,7 @@ private function getAddToCartMutation(): string
100105 product {
101106 sku
102107 name
108+ {$ customAttributeCode }
103109 thumbnail {
104110 url
105111 __typename
0 commit comments