Skip to content

Commit b71707e

Browse files
committed
ACP2E-3449: Slow query is executed when product widget is included via pagebuilder
1 parent 1af05e1 commit b71707e

File tree

1 file changed

+25
-8
lines changed
  • dev/tests/integration/testsuite/Magento/Rule/Model/Condition/Sql

1 file changed

+25
-8
lines changed

dev/tests/integration/testsuite/Magento/Rule/Model/Condition/Sql/BuilderTest.php

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
namespace Magento\Rule\Model\Condition\Sql;
88

99
use Magento\Catalog\Model\ResourceModel\Eav\Attribute;
10+
use Magento\Catalog\Setup\CategorySetup;
11+
use Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend;
12+
use Magento\Eav\Model\Entity\Attribute\Source\Table;
1013
use Magento\Eav\Test\Fixture\AttributeOption as AttributeOptionFixture;
1114
use Magento\Framework\Exception\LocalizedException;
1215
use Magento\TestFramework\Helper\Bootstrap;
@@ -20,7 +23,6 @@
2023

2124
/**
2225
* Test for Magento\Rule\Model\Condition\Sql\Builder
23-
* @magentoDbIsolation enabled
2426
*/
2527
class BuilderTest extends TestCase
2628
{
@@ -46,7 +48,19 @@ protected function setUp(): void
4648
* @dataProvider attachConditionToCollectionDataProvider
4749
*/
4850
#[
49-
DataFixture(MultiselectAttribute::class, ['attribute_code' => 'multi_select_attr'], 'multiselect'),
51+
DataFixture(
52+
MultiselectAttribute::class,
53+
[
54+
'entity_type_id' => CategorySetup::CATALOG_PRODUCT_ENTITY_TYPE_ID,
55+
'source_model' => Table::class,
56+
//'backend_model' => ArrayBackend::class,
57+
'attribute_code' => 'multi_select_attr',
58+
'is_visible_on_front' => true,
59+
'frontend_input' => 'multiselect',
60+
'backend_type' => 'static' //nu asa ?!
61+
],
62+
'multiselect'
63+
),
5064
DataFixture(
5165
AttributeOptionFixture::class,
5266
[
@@ -76,7 +90,7 @@ public function testAttachConditionToCollection(
7690
$collectionFactory = Bootstrap::getObjectManager()->create(ProductCollectionFactory::class);
7791
$collection = $collectionFactory->create();
7892
foreach ($conditions as $key => $condition) {
79-
if (isset($condition['attribute']) && $condition['attribute'] === 'multiselect_attribute') {
93+
if (isset($condition['attribute']) && $condition['attribute'] === 'multi_select_attr') {
8094
$multiselect = Bootstrap::getObjectManager()->create(
8195
Attribute::class
8296
);
@@ -88,7 +102,7 @@ public function testAttachConditionToCollection(
88102
}
89103
}
90104

91-
$condition[$key]['value'] = implode(',', $multiselectAttributeOptionIds);
105+
$conditions[$key]['value'] = $multiselectAttributeOptionIds;
92106
}
93107
}
94108

@@ -113,7 +127,7 @@ public function testAttachConditionToCollection(
113127
public static function attachConditionToCollectionDataProvider(): array
114128
{
115129
return [
116-
[
130+
/* [
117131
[
118132
'1' => [
119133
'type' => CombineCondition::class,
@@ -140,9 +154,12 @@ public static function attachConditionToCollectionDataProvider(): array
140154
'value' => 'sku1,sku2,sku3,sku4,sku5',
141155
]
142156
],
143-
"WHERE (((`e`.`entity_id` IN (SELECT `catalog_category_product`.`product_id` FROM `catalog_category_product` WHERE (category_id IN ('3')))) AND(`e`.`entity_id` = '2017-09-15 00:00:00') AND(`e`.`sku` IN ('sku1', 'sku2', 'sku3', 'sku4', 'sku5')) ))",
157+
"WHERE ((((`e`.`entity_id` IN (SELECT `catalog_category_product`.`product_id` FROM " .
158+
"`catalog_category_product` WHERE (category_id IN ('3')))) " .
159+
"AND(`e`.`entity_id` = '2017-09-15 00:00:00') AND(`e`.`sku` IN " .
160+
"('sku1', 'sku2', 'sku3', 'sku4', 'sku5')) ))) AND (e.created_in <= 1) AND (e.updated_in > 1)",
144161
"ORDER BY (FIELD(`e`.`sku`, 'sku1', 'sku2', 'sku3', 'sku4', 'sku5'))"
145-
],
162+
],*/
146163
[
147164
[
148165
'1' => [
@@ -165,7 +182,7 @@ public static function attachConditionToCollectionDataProvider(): array
165182
],
166183
'1--3' => [
167184
'type' => ProductCondition::class,
168-
'attribute' => 'multiselect_attribute',
185+
'attribute' => 'multi_select_attr',
169186
'operator' => '{}',
170187
]
171188
],

0 commit comments

Comments
 (0)