From 24ebc2eb083c82f9e8f93c82eea05bfd27766353 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Thu, 16 Jul 2020 20:31:41 +0300 Subject: [PATCH 01/17] fixed issue with attribute label --- .../Model/Resolver/Products/Query/Search.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index fbb0e42f2afeb..75cf377adf65a 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -7,6 +7,7 @@ namespace Magento\CatalogGraphQl\Model\Resolver\Products\Query; +use Magento\Catalog\Model\Product; use Magento\CatalogGraphQl\DataProvider\Product\SearchCriteriaBuilder; use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\ProductSearch; use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult; @@ -106,10 +107,13 @@ public function getResult( $totalPages = $realPageSize ? ((int)ceil($searchResults->getTotalCount() / $realPageSize)) : 0; $productArray = []; - /** @var \Magento\Catalog\Model\Product $product */ + /** @var Product $product */ foreach ($searchResults->getItems() as $product) { $productArray[$product->getId()] = $product->getData(); $productArray[$product->getId()]['model'] = $product; + foreach ($queryFields as $field) { + $productArray[$product->getId()][$field] = $this->getAttributeLabel($product, $field); + } } return $this->searchResultFactory->create( @@ -139,4 +143,17 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit return $searchCriteria; } + + /** + * Get frontend label of product attribute + * + * @param Product $product + * @param $field + * + * @return mixed + */ + private function getAttributeLabel(Product $product, $field) + { + return $product->getResource()->getAttribute($field)->getFrontend()->getValue($product); + } } From 0d904ab742743dba6f159d100c30000b5ad72f03 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Fri, 17 Jul 2020 11:11:45 +0300 Subject: [PATCH 02/17] checking attribute --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index 75cf377adf65a..c4b1496dd2ef3 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -154,6 +154,9 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit */ private function getAttributeLabel(Product $product, $field) { - return $product->getResource()->getAttribute($field)->getFrontend()->getValue($product); + $attribute = $product->getResource()->getAttribute($field); + if ($attribute) { + return $attribute->getFrontend()->getValue($product); + } } } From 3cfc907301d93385984abf399e40ddab1df08a44 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Fri, 17 Jul 2020 16:59:16 +0300 Subject: [PATCH 03/17] apply some fixes related with failed tests --- .../Model/Resolver/Products/Query/Search.php | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index c4b1496dd2ef3..b8fdd47a35af3 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -14,6 +14,7 @@ use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResultFactory; use Magento\Framework\Api\Search\SearchCriteriaInterface; use Magento\Framework\GraphQl\Schema\Type\ResolveInfo; +use Magento\Framework\Phrase; use Magento\Search\Api\SearchInterface; use Magento\Search\Model\Search\PageSizeProvider; @@ -112,7 +113,11 @@ public function getResult( $productArray[$product->getId()] = $product->getData(); $productArray[$product->getId()]['model'] = $product; foreach ($queryFields as $field) { - $productArray[$product->getId()][$field] = $this->getAttributeLabel($product, $field); + $productArray[$product->getId()][$field] = $this->getAttributeValue( + $product, + $productArray, + $field + ); } } @@ -144,19 +149,25 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit return $searchCriteria; } + /** - * Get frontend label of product attribute + * Get product attribute value * * @param Product $product + * @param $productArray * @param $field * - * @return mixed + * @return string|null */ - private function getAttributeLabel(Product $product, $field) + private function getAttributeValue(Product $product, $productArray, $field) { - $attribute = $product->getResource()->getAttribute($field); - if ($attribute) { - return $attribute->getFrontend()->getValue($product); + if ($attribute = $product->getResource()->getAttribute($field)) { + $attributeValue = $attribute->getFrontend()->getValue($product); + if ($attributeValue && !($attributeValue instanceof Phrase) ) { + return $attributeValue; + } else { + return isset($productArray[$product->getId()][$field])? $productArray[$product->getId()][$field] : null; + } } } } From 71132b13639bfa8b03b8c422a809b9e5f6e1c136 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Tue, 28 Jul 2020 17:53:14 +0300 Subject: [PATCH 04/17] fixed some issues --- .../Model/Resolver/Products/Query/Search.php | 29 ++++++++++++------- .../GraphQl/Catalog/ProductViewTest.php | 12 ++++---- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index 8be4e9273ed4c..e46e1a905961d 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -13,6 +13,7 @@ use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult; use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResultFactory; use Magento\Framework\Api\Search\SearchCriteriaInterface; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\GraphQl\Schema\Type\ResolveInfo; use Magento\Framework\Phrase; use Magento\GraphQl\Model\Query\ContextInterface; @@ -21,6 +22,8 @@ /** * Full text search for catalog using given search criteria. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Search implements ProductQueryInterface { @@ -115,11 +118,15 @@ public function getResult( $productArray[$product->getId()] = $product->getData(); $productArray[$product->getId()]['model'] = $product; foreach ($queryFields as $field) { - $productArray[$product->getId()][$field] = $this->getAttributeValue( - $product, - $productArray, - $field - ); + try { + $productArray[$product->getId()][$field] = $this->getAttributeValue( + $product, + $productArray, + $field + ); + } catch (LocalizedException $e) { + continue; + } } } @@ -151,7 +158,6 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit return $searchCriteria; } - /** * Get product attribute value * @@ -161,15 +167,18 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * * @return string|null */ - private function getAttributeValue(Product $product, $productArray, $field) + private function getAttributeValue(Product $product, $productArray, $field) :?string { if ($attribute = $product->getResource()->getAttribute($field)) { $attributeValue = $attribute->getFrontend()->getValue($product); - if ($attributeValue && !($attributeValue instanceof Phrase) ) { - return $attributeValue; + if ($attributeValue && !($attributeValue instanceof Phrase)) { + return $attributeValue; } else { - return isset($productArray[$product->getId()][$field])? $productArray[$product->getId()][$field] : null; + return isset($productArray[$product->getId()][$field]) ? + $productArray[$product->getId()][$field] : null; } + } else { + return ""; } } } diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php index c6719f1862ddc..1f5e0003457ad 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php @@ -232,7 +232,7 @@ public function testQueryAllFieldsSimpleProduct() special_from_date special_price special_to_date - swatch_image + swatch_image tier_price tier_prices { @@ -811,14 +811,12 @@ private function assertOptions($product, $actualResponse) */ private function assertBaseFields($product, $actualResponse) { - $assertionMap = [ ['response_field' => 'attribute_set_id', 'expected_value' => $product->getAttributeSetId()], ['response_field' => 'created_at', 'expected_value' => $product->getCreatedAt()], ['response_field' => 'id', 'expected_value' => $product->getId()], ['response_field' => 'name', 'expected_value' => $product->getName()], - ['response_field' => 'price', 'expected_value' => - [ + ['response_field' => 'price', 'expected_value' => [ 'minimalPrice' => [ 'amount' => [ 'value' => $product->getSpecialPrice(), @@ -918,7 +916,9 @@ private function assertEavAttributes($product, $actualResponse) 'expected_value' => $expectedAttribute ? $expectedAttribute->getValue() : null ]; } - + if ($assertionMap[4]['expected_value'] == "US") { + $assertionMap[4]['expected_value'] = 'United States'; + } $this->assertResponseFields($actualResponse, $assertionMap); } @@ -1050,7 +1050,7 @@ public function testProductInNonAnchoredSubCategories() { $query = << Date: Wed, 29 Jul 2020 14:03:28 +0300 Subject: [PATCH 05/17] revert some changes due to faild tests --- .../Model/Resolver/Products/Query/Search.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index e46e1a905961d..909cb729c79ff 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -19,6 +19,7 @@ use Magento\GraphQl\Model\Query\ContextInterface; use Magento\Search\Api\SearchInterface; use Magento\Search\Model\Search\PageSizeProvider; +use Magento\Tests\NamingConvention\true\string; /** * Full text search for catalog using given search criteria. @@ -162,12 +163,12 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * Get product attribute value * * @param Product $product - * @param $productArray - * @param $field + * @param array $productArray + * @param string $field * * @return string|null */ - private function getAttributeValue(Product $product, $productArray, $field) :?string + private function getAttributeValue(Product $product, $productArray, $field) { if ($attribute = $product->getResource()->getAttribute($field)) { $attributeValue = $attribute->getFrontend()->getValue($product); @@ -177,8 +178,6 @@ private function getAttributeValue(Product $product, $productArray, $field) :?st return isset($productArray[$product->getId()][$field]) ? $productArray[$product->getId()][$field] : null; } - } else { - return ""; } } } From dac9483f361339906ade8919174e1542d6b5d966 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Wed, 29 Jul 2020 14:11:59 +0300 Subject: [PATCH 06/17] minor fix --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index 909cb729c79ff..e725607668e18 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -19,7 +19,6 @@ use Magento\GraphQl\Model\Query\ContextInterface; use Magento\Search\Api\SearchInterface; use Magento\Search\Model\Search\PageSizeProvider; -use Magento\Tests\NamingConvention\true\string; /** * Full text search for catalog using given search criteria. @@ -168,7 +167,7 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * * @return string|null */ - private function getAttributeValue(Product $product, $productArray, $field) + private function getAttributeValue(Product $product, array $productArray, string $field) { if ($attribute = $product->getResource()->getAttribute($field)) { $attributeValue = $attribute->getFrontend()->getValue($product); From de49f18f030a96e8359aec96bc3ed949ffa3566f Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Wed, 29 Jul 2020 15:59:15 +0300 Subject: [PATCH 07/17] added test --- .../ProductWithMultiselectAttributeTest.php | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php new file mode 100644 index 0000000000000..06801a04976e9 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -0,0 +1,40 @@ +graphQlQuery($query); + $this->assertStringContainsString( + 'Option 2, Option 3, Option 4 "!@#$%^&*', + $response['products']['items'][0]['multiselect_attribute'] + ); + } +} From 04198e84ff8b266a8b7786c374c951631a3ffbc9 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Wed, 29 Jul 2020 16:45:17 +0300 Subject: [PATCH 08/17] fix static issue --- .../Model/Resolver/Products/Query/Search.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index e725607668e18..f1f590cee561f 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -118,15 +118,11 @@ public function getResult( $productArray[$product->getId()] = $product->getData(); $productArray[$product->getId()]['model'] = $product; foreach ($queryFields as $field) { - try { - $productArray[$product->getId()][$field] = $this->getAttributeValue( - $product, - $productArray, - $field - ); - } catch (LocalizedException $e) { - continue; - } + $productArray[$product->getId()][$field] = $this->getAttributeValue( + $product, + $productArray, + $field + ); } } @@ -178,5 +174,7 @@ private function getAttributeValue(Product $product, array $productArray, string $productArray[$product->getId()][$field] : null; } } + + return ""; } } From 18f2b08c105d6ed6a939b70f13b0a17ecfae2f07 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Thu, 30 Jul 2020 10:46:19 +0300 Subject: [PATCH 09/17] added changes to test --- .../ProductWithMultiselectAttributeTest.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index 06801a04976e9..1af4aeb9a42ef 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -7,6 +7,9 @@ namespace Magento\GraphQl\Catalog; +use Magento\Framework\Exception\LocalizedException; +use Magento\TestFramework\Helper\Bootstrap; +use Magento\TestFramework\Helper\CacheCleaner; use Magento\TestFramework\TestCase\GraphQlAbstract; /** @@ -21,6 +24,7 @@ class ProductWithMultiselectAttributeTest extends GraphQlAbstract */ public function testQueryProductWithMultiselectAttribute() { + $this->reIndexAndCleanCache(); $query = <<getAppTempDir()); + $out = ''; + // phpcs:ignore Magento2.Security.InsecureFunction + exec("php -f {$appDir}/bin/magento indexer:reindex", $out); + CacheCleaner::cleanAll(); + } } From 61deae773f9d83d9c920216bcb446cb43a5afec9 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Wed, 5 Aug 2020 14:52:33 +0300 Subject: [PATCH 10/17] add minor fix --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index f1f590cee561f..9c1052b489986 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -170,8 +170,7 @@ private function getAttributeValue(Product $product, array $productArray, string if ($attributeValue && !($attributeValue instanceof Phrase)) { return $attributeValue; } else { - return isset($productArray[$product->getId()][$field]) ? - $productArray[$product->getId()][$field] : null; + return $productArray[$product->getId()][$field] ?? null; } } From c6b357715c2990cc9ed65ccd7b1f2a0da9973772 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Sat, 24 Oct 2020 15:22:21 +0300 Subject: [PATCH 11/17] CR recommendations --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 3 +-- .../testsuite/Magento/GraphQl/Catalog/ProductViewTest.php | 2 +- .../GraphQl/Catalog/ProductWithMultiselectAttributeTest.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index 29bd20ace2d18..d36af800b9649 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -13,7 +13,6 @@ use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult; use Magento\CatalogGraphQl\Model\Resolver\Products\SearchResultFactory; use Magento\Framework\Api\Search\SearchCriteriaInterface; -use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Exception\InputException; use Magento\Framework\GraphQl\Schema\Type\ResolveInfo; use Magento\Framework\Phrase; @@ -170,7 +169,7 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * * @return string|null */ - private function getAttributeValue(Product $product, array $productArray, string $field) + private function getAttributeValue(Product $product, array $productArray, string $field): ?string { if ($attribute = $product->getResource()->getAttribute($field)) { $attributeValue = $attribute->getFrontend()->getValue($product); diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php index 3e239c61062d9..a3f93db696cb3 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php @@ -916,7 +916,7 @@ private function assertEavAttributes($product, $actualResponse) 'expected_value' => $expectedAttribute ? $expectedAttribute->getValue() : null ]; } - if ($assertionMap[4]['expected_value'] == "US") { + if ($assertionMap[4]['expected_value'] === "US") { $assertionMap[4]['expected_value'] = 'United States'; } $this->assertResponseFields($actualResponse, $assertionMap); diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index 1af4aeb9a42ef..8a1f3cead18d1 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -54,6 +54,6 @@ private function reIndexAndCleanCache() : void $out = ''; // phpcs:ignore Magento2.Security.InsecureFunction exec("php -f {$appDir}/bin/magento indexer:reindex", $out); - CacheCleaner::cleanAll(); + CacheCleaner::clean(['eav']); } } From 9aa76d2f7bd8c1cf72add182cca3d6b9d7b1d9bb Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Sat, 24 Oct 2020 19:09:11 +0300 Subject: [PATCH 12/17] clean cache fix --- .../GraphQl/Catalog/ProductWithMultiselectAttributeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index 8a1f3cead18d1..e895a458aedd8 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -54,6 +54,6 @@ private function reIndexAndCleanCache() : void $out = ''; // phpcs:ignore Magento2.Security.InsecureFunction exec("php -f {$appDir}/bin/magento indexer:reindex", $out); - CacheCleaner::clean(['eav']); + $this->cleanCache(); } } From ec8e1d223c24458cb5e4cb1c7488f56968eaabad Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Sat, 24 Oct 2020 20:58:56 +0300 Subject: [PATCH 13/17] Update dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php --- .../GraphQl/Catalog/ProductWithMultiselectAttributeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index e895a458aedd8..17956c9acfc3b 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -54,6 +54,6 @@ private function reIndexAndCleanCache() : void $out = ''; // phpcs:ignore Magento2.Security.InsecureFunction exec("php -f {$appDir}/bin/magento indexer:reindex", $out); - $this->cleanCache(); + CacheCleaner::clean(['eav', 'config', 'collections']); } } From a092ff57f71ef3fab5870b13a097be89b02bf213 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Sat, 24 Oct 2020 22:40:12 +0300 Subject: [PATCH 14/17] Update dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php --- .../GraphQl/Catalog/ProductWithMultiselectAttributeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index 17956c9acfc3b..1af4aeb9a42ef 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -54,6 +54,6 @@ private function reIndexAndCleanCache() : void $out = ''; // phpcs:ignore Magento2.Security.InsecureFunction exec("php -f {$appDir}/bin/magento indexer:reindex", $out); - CacheCleaner::clean(['eav', 'config', 'collections']); + CacheCleaner::cleanAll(); } } From 008fb16dd498881d1492e50f79240988dcea0bd4 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Mon, 26 Oct 2020 16:23:56 +0200 Subject: [PATCH 15/17] Update dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php --- .../GraphQl/Catalog/ProductWithMultiselectAttributeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php index 1af4aeb9a42ef..e895a458aedd8 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductWithMultiselectAttributeTest.php @@ -54,6 +54,6 @@ private function reIndexAndCleanCache() : void $out = ''; // phpcs:ignore Magento2.Security.InsecureFunction exec("php -f {$appDir}/bin/magento indexer:reindex", $out); - CacheCleaner::cleanAll(); + $this->cleanCache(); } } From 6666c409afd774e8e6758a29329992563c5d17a7 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Mon, 26 Oct 2020 16:24:29 +0200 Subject: [PATCH 16/17] Update app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index d36af800b9649..942926d5a44d4 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -169,7 +169,7 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * * @return string|null */ - private function getAttributeValue(Product $product, array $productArray, string $field): ?string + private function getAttributeValue(Product $product, array $productArray, string $field) { if ($attribute = $product->getResource()->getAttribute($field)) { $attributeValue = $attribute->getFrontend()->getValue($product); From 8b6a3cd8ae3d7f417fe5ea94ecfd9004b66a8320 Mon Sep 17 00:00:00 2001 From: Oleh Usik Date: Mon, 26 Oct 2020 16:25:14 +0200 Subject: [PATCH 17/17] Update app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php --- .../CatalogGraphQl/Model/Resolver/Products/Query/Search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php index 942926d5a44d4..d74d27d6630aa 100644 --- a/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php +++ b/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/Query/Search.php @@ -167,7 +167,7 @@ private function buildSearchCriteria(array $args, ResolveInfo $info): SearchCrit * @param array $productArray * @param string $field * - * @return string|null + * @return string|null|int|bool */ private function getAttributeValue(Product $product, array $productArray, string $field) {