Skip to content

Commit 391a177

Browse files
author
Viktor Sevch
committed
MC-23536: CatalogProductListWidgetOrderTest is flaky and fails randomly
1 parent d792770 commit 391a177

File tree

3 files changed

+114
-26
lines changed

3 files changed

+114
-26
lines changed

app/code/Magento/CatalogWidget/Block/Product/ProductsList.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,10 @@ public function createCollection()
337337

338338
$collection->setVisibility($this->catalogProductVisibility->getVisibleInCatalogIds());
339339

340+
/**
341+
* Change sorting attribute to entity_id because created_at can be the same for products fastly created
342+
* one by one and sorting by created_at is indeterministic in this case.
343+
*/
340344
$collection = $this->_addProductAttributesAndPrices($collection)
341345
->addStoreFilter()
342346
->addAttributeToSort('entity_id', 'desc')
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="CatalogProductListCheckWidgetOrderTest">
12+
<annotations>
13+
<features value="CatalogWidget"/>
14+
<stories value="Product list widget"/>
15+
<title value="Checking order of products in the 'catalog Products List' widget"/>
16+
<description value="Check that products are ordered with recently added products first"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="MC-13794"/>
19+
<useCaseId value="MC-5905"/>
20+
<group value="catalogWidget"/>
21+
<group value="catalog"/>
22+
</annotations>
23+
<before>
24+
<createData entity="SimpleSubCategory" stepKey="simplecategory"/>
25+
<createData entity="SimpleProduct" stepKey="createFirstProduct">
26+
<requiredEntity createDataKey="simplecategory"/>
27+
<field key="price">10</field>
28+
</createData>
29+
<createData entity="SimpleProduct" stepKey="createSecondProduct">
30+
<requiredEntity createDataKey="simplecategory"/>
31+
<field key="price">20</field>
32+
</createData>
33+
<createData entity="SimpleProduct" stepKey="createThirdProduct">
34+
<requiredEntity createDataKey="simplecategory"/>
35+
<field key="price">30</field>
36+
</createData>
37+
<createData entity="_defaultCmsPage" stepKey="createPreReqPage"/>
38+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
39+
<actionGroup ref="EnabledWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>
40+
</before>
41+
<after>
42+
<actionGroup ref="DisabledWYSIWYGActionGroup" stepKey="disableWYSIWYG"/>
43+
<deleteData createDataKey="createPreReqPage" stepKey="deletePreReqPage" />
44+
<deleteData createDataKey="simplecategory" stepKey="deleteSimpleCategory"/>
45+
<deleteData createDataKey="createFirstProduct" stepKey="deleteFirstProduct"/>
46+
<deleteData createDataKey="createSecondProduct" stepKey="deleteSecondProduct"/>
47+
<deleteData createDataKey="createThirdProduct" stepKey="deleteThirdProduct"/>
48+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
49+
</after>
50+
<!--Open created cms page-->
51+
<actionGroup ref="AdminOpenCmsPageActionGroup" stepKey="openEditPage">
52+
<argument name="page_id" value="$createPreReqPage.id$"/>
53+
</actionGroup>
54+
<click selector="{{CmsNewPagePageContentSection.header}}" stepKey="clickExpandContentTabForPage"/>
55+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
56+
<!--Add widget to cms page-->
57+
<waitForElementVisible selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="waitInsertWidgetIconVisible"/>
58+
<click selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="clickInsertWidgetIcon" />
59+
<waitForPageLoad stepKey="waitForPageLoad1" />
60+
<waitForElementVisible selector="{{WidgetSection.WidgetType}}" stepKey="waitForWidgetTypeSelectorVisible"/>
61+
<selectOption selector="{{WidgetSection.WidgetType}}" userInput="Catalog Products List" stepKey="selectCatalogProductsList" />
62+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear1" />
63+
<waitForElementVisible selector="{{WidgetSection.AddParam}}" stepKey="waitForAddParamBtnVisible"/>
64+
<click selector="{{WidgetSection.AddParam}}" stepKey="clickAddParamBtn" />
65+
<waitForElementVisible selector="{{WidgetSection.ConditionsDropdown}}" stepKey="waitForDropdownVisible"/>
66+
<selectOption selector="{{WidgetSection.ConditionsDropdown}}" userInput="Category" stepKey="selectCategoryCondition" />
67+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear2" />
68+
<waitForElementVisible selector="{{WidgetSection.RuleParam}}" stepKey="waitForRuleParamVisible"/>
69+
<click selector="{{WidgetSection.RuleParam}}" stepKey="clickRuleParam" />
70+
<waitForElementVisible selector="{{WidgetSection.Chooser}}" stepKey="waitForElement" />
71+
<click selector="{{WidgetSection.Chooser}}" stepKey="clickChooser" />
72+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear3" />
73+
<waitForElementVisible selector="{{WidgetSection.PreCreateCategory('$simplecategory.name$')}}" stepKey="waitForCategoryVisible" />
74+
<click selector="{{WidgetSection.PreCreateCategory('$simplecategory.name$')}}" stepKey="selectCategory" />
75+
<click selector="{{WidgetSection.InsertWidget}}" stepKey="clickInsertWidget" />
76+
<waitForPageLoad stepKey="waitForPageLoad2" />
77+
<!--Save cms page and go to Storefront-->
78+
<actionGroup ref="SaveCmsPageActionGroup" stepKey="saveCmsPage"/>
79+
<actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToTheStoreFront1">
80+
<argument name="page" value="$createPreReqPage.identifier$"/>
81+
</actionGroup>
82+
<!--Check order of products: recently added first-->
83+
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('1','$createThirdProduct.name$')}}" stepKey="waitForThirdProductVisible"/>
84+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('1','$createThirdProduct.name$')}}" stepKey="seeElementByName1"/>
85+
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('2','$createSecondProduct.name$')}}" stepKey="waitForSecondProductVisible"/>
86+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('2','$createSecondProduct.name$')}}" stepKey="seeElementByName2"/>
87+
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('3','$createFirstProduct.name$')}}" stepKey="waitForFirstProductVisible"/>
88+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('3','$createFirstProduct.name$')}}" stepKey="seeElementByName3"/>
89+
</test>
90+
</tests>

app/code/Magento/CatalogWidget/Test/Mftf/Test/CatalogProductListWidgetOrderTest.xml

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,19 @@
88

99
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11-
<test name="CatalogProductListWidgetOrderTest">
11+
<test name="CatalogProductListWidgetOrderTest" deprecated="Use CatalogProductListCheckWidgetOrderTest instead">
1212
<annotations>
1313
<features value="CatalogWidget"/>
1414
<stories value="MC-5905: Wrong sorting on Products component"/>
15-
<title value="Checking order of products in the 'catalog Products List' widget"/>
15+
<title value="Deprecated. Checking order of products in the 'catalog Products List' widget"/>
1616
<description value="Check that products are ordered with recently added products first"/>
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-13794"/>
1919
<group value="CatalogWidget"/>
2020
<group value="WYSIWYGDisabled"/>
21+
<skip>
22+
<issueId value="DEPRECATED">Use CatalogProductListCheckWidgetOrderTest instead</issueId>
23+
</skip>
2124
</annotations>
2225
<before>
2326
<createData entity="SimpleSubCategory" stepKey="simplecategory"/>
@@ -37,58 +40,49 @@
3740
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
3841
<actionGroup ref="EnabledWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>
3942
</before>
40-
<after>
41-
<actionGroup ref="DisabledWYSIWYGActionGroup" stepKey="disableWYSIWYG"/>
42-
<deleteData createDataKey="createPreReqPage" stepKey="deletePreReqPage" />
43-
<deleteData createDataKey="simplecategory" stepKey="deleteSimpleCategory"/>
44-
<deleteData createDataKey="createFirstProduct" stepKey="deleteFirstProduct"/>
45-
<deleteData createDataKey="createSecondProduct" stepKey="deleteSecondProduct"/>
46-
<deleteData createDataKey="createThirdProduct" stepKey="deleteThirdProduct"/>
47-
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
48-
</after>
4943
<!--Open created cms page-->
5044
<comment userInput="Open created cms page" stepKey="commentOpenCreatedCmsPage"/>
5145
<actionGroup ref="NavigateToCreatedCMSPageActionGroup" stepKey="navigateToCreatedCMSPage1">
52-
<argument name="CMSPage" value="$createPreReqPage$"/>
46+
<argument name="CMSPage" value="$$createPreReqPage$$"/>
5347
</actionGroup>
5448
<!--Add widget to cms page-->
5549
<comment userInput="Add widget to cms page" stepKey="commentAddWidgetToCmsPage"/>
56-
<waitForElementVisible selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="waitInsertWidgetIconVisible"/>
5750
<click selector="{{TinyMCESection.InsertWidgetIcon}}" stepKey="clickInsertWidgetIcon" />
5851
<waitForPageLoad stepKey="waitForPageLoad1" />
59-
<waitForElementVisible selector="{{WidgetSection.WidgetType}}" stepKey="waitForWidgetTypeSelectorVisible"/>
6052
<selectOption selector="{{WidgetSection.WidgetType}}" userInput="Catalog Products List" stepKey="selectCatalogProductsList" />
6153
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear1" />
62-
<waitForElementVisible selector="{{WidgetSection.AddParam}}" stepKey="waitForAddParamBtnVisible"/>
6354
<click selector="{{WidgetSection.AddParam}}" stepKey="clickAddParamBtn" />
6455
<waitForElementVisible selector="{{WidgetSection.ConditionsDropdown}}" stepKey="waitForDropdownVisible"/>
6556
<selectOption selector="{{WidgetSection.ConditionsDropdown}}" userInput="Category" stepKey="selectCategoryCondition" />
6657
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear2" />
67-
<waitForElementVisible selector="{{WidgetSection.RuleParam}}" stepKey="waitForRuleParamVisible"/>
6858
<click selector="{{WidgetSection.RuleParam}}" stepKey="clickRuleParam" />
6959
<waitForElementVisible selector="{{WidgetSection.Chooser}}" stepKey="waitForElement" />
7060
<click selector="{{WidgetSection.Chooser}}" stepKey="clickChooser" />
7161
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskDisappear3" />
72-
<waitForElementVisible selector="{{WidgetSection.PreCreateCategory('$simplecategory.name$')}}" stepKey="waitForCategoryVisible" />
73-
<click selector="{{WidgetSection.PreCreateCategory('$simplecategory.name$')}}" stepKey="selectCategory" />
62+
<click selector="{{WidgetSection.PreCreateCategory('$$simplecategory.name$$')}}" stepKey="selectCategory" />
7463
<click selector="{{WidgetSection.InsertWidget}}" stepKey="clickInsertWidget" />
7564
<waitForPageLoad stepKey="waitForPageLoad2" />
7665
<!--Save cms page and go to Storefront-->
7766
<comment userInput="Save cms page and go to Storefront" stepKey="commentSaveCmsPageAndGoToStorefront"/>
78-
<waitForElementVisible selector="{{CmsNewPagePageActionsSection.expandSplitButton}}" stepKey="waitForExpandButtonMenuVisible"/>
7967
<click selector="{{CmsNewPagePageActionsSection.expandSplitButton}}" stepKey="expandButtonMenu"/>
8068
<waitForElementVisible selector="{{CmsNewPagePageActionsSection.splitButtonMenu}}" stepKey="waitForSplitButtonMenuVisible"/>
8169
<click selector="{{CmsNewPagePageActionsSection.savePage}}" stepKey="clickSavePage"/>
8270
<see userInput="You saved the page." stepKey="seeSuccessMessage"/>
83-
<amOnPage url="$createPreReqPage.identifier$" stepKey="amOnPageTestPage"/>
71+
<amOnPage url="$$createPreReqPage.identifier$$" stepKey="amOnPageTestPage"/>
8472
<waitForPageLoad stepKey="waitForPageLoad3" />
8573
<!--Check order of products: recently added first-->
8674
<comment userInput="Check order of products: recently added first" stepKey="commentCheckOrderOfProductsRecentlyAddedFirst"/>
87-
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('1','$createThirdProduct.name$')}}" stepKey="waitForThirdProductVisible"/>
88-
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('1','$createThirdProduct.name$')}}" stepKey="seeElementByName1"/>
89-
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('2','$createSecondProduct.name$')}}" stepKey="waitForSecondProductVisible"/>
90-
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('2','$createSecondProduct.name$')}}" stepKey="seeElementByName2"/>
91-
<waitForElementVisible selector="{{InsertWidgetSection.checkElementStorefrontByName('3','$createFirstProduct.name$')}}" stepKey="waitForFirstProductVisible"/>
92-
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('3','$createFirstProduct.name$')}}" stepKey="seeElementByName3"/>
75+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('1','$$createThirdProduct.name$$')}}" stepKey="seeElementByName1"/>
76+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('2','$$createSecondProduct.name$$')}}" stepKey="seeElementByName2"/>
77+
<seeElement selector="{{InsertWidgetSection.checkElementStorefrontByName('3','$$createFirstProduct.name$$')}}" stepKey="seeElementByName3"/>
78+
<after>
79+
<actionGroup ref="DisabledWYSIWYGActionGroup" stepKey="disableWYSIWYG"/>
80+
<deleteData createDataKey="createPreReqPage" stepKey="deletePreReqPage" />
81+
<deleteData createDataKey="simplecategory" stepKey="deleteSimpleCategory"/>
82+
<deleteData createDataKey="createFirstProduct" stepKey="deleteFirstProduct"/>
83+
<deleteData createDataKey="createSecondProduct" stepKey="deleteSecondProduct"/>
84+
<deleteData createDataKey="createThirdProduct" stepKey="deleteThirdProduct"/>
85+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
86+
</after>
9387
</test>
9488
</tests>

0 commit comments

Comments
 (0)