Skip to content

Commit f0da52c

Browse files
committed
ACP2E-2653: Disabling Layered Navetion - Does not remove aggregation from Graphql
1 parent 83ba09d commit f0da52c

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductSearchCategoryAggregationsTest.php

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,92 @@ private function getGraphQlQuery(string $categoryList, string $includeDirectChil
225225
}
226226
}
227227
}
228+
QUERY;
229+
}
230+
231+
/**
232+
* Test the categories that appear in aggregation Layered Navigation > Display Category Filter => Yes (default).
233+
*
234+
* @magentoApiDataFixture Magento/Catalog/_files/categories.php
235+
* @throws \Exception
236+
*/
237+
public function testFetchCategoriesWhenDisplayCategoryEnabled(): void
238+
{
239+
$result = $this->aggregationWithDisplayCategorySetting();
240+
$aggregationAttributeCode = [];
241+
foreach ($result['products']['aggregations'] as $aggregation) {
242+
$this->assertArrayHasKey('attribute_code', $aggregation);
243+
$aggregationAttributeCode[] = $aggregation['attribute_code'];
244+
}
245+
$this->assertTrue(in_array('category_uid', $aggregationAttributeCode));
246+
}
247+
248+
/**
249+
* Test the categories not in aggregation when Layered Navigation > Display Category Filter => No.
250+
*
251+
* @magentoConfigFixture catalog/layered_navigation/display_category 0
252+
* @magentoApiDataFixture Magento/Catalog/_files/categories.php
253+
* @throws \Exception
254+
*/
255+
public function testDontFetchCategoriesWhenDisplayCategoryDisabled(): void
256+
{
257+
$result = $this->aggregationWithDisplayCategorySetting();
258+
$aggregationAttributeCode = [];
259+
foreach ($result['products']['aggregations'] as $aggregation) {
260+
$this->assertArrayHasKey('attribute_code', $aggregation);
261+
$aggregationAttributeCode[] = $aggregation['attribute_code'];
262+
}
263+
$this->assertFalse(in_array('category_uid', $aggregationAttributeCode));
264+
}
265+
266+
/**
267+
* @return array
268+
* @throws \Exception
269+
*/
270+
private function aggregationWithDisplayCategorySetting(): array
271+
{
272+
$query = $this->getGraphQlQueryProductSearch();
273+
$result = $this->graphQlQuery($query);
274+
275+
$this->assertArrayNotHasKey('errors', $result);
276+
$this->assertArrayHasKey('aggregations', $result['products']);
277+
return $result;
278+
}
279+
280+
/**
281+
* Get graphQl query.
282+
*
283+
* @return string
284+
*/
285+
private function getGraphQlQueryProductSearch(): string
286+
{
287+
return <<<QUERY
288+
{
289+
products(
290+
search: "simple"
291+
pageSize: 20
292+
currentPage: 1
293+
sort: { }
294+
) {
295+
items {
296+
sku
297+
canonical_url
298+
categories{
299+
name
300+
path
301+
}
302+
}
303+
aggregations (filter: {category: {includeDirectChildrenOnly: true}}) {
304+
attribute_code
305+
count
306+
label
307+
options {
308+
label
309+
value
310+
}
311+
}
312+
}
313+
}
228314
QUERY;
229315
}
230316
}

0 commit comments

Comments
 (0)