Skip to content

Commit ec0775c

Browse files
committed
ACP2E-1764: Configurable product price is not changed when option is selected
- Added the test coverage.
1 parent e4a6a3e commit ec0775c

File tree

5 files changed

+217
-1
lines changed

5 files changed

+217
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminCreateConfigurableProductWithAttributeUncheckOptionWithUniquePricesActionGroup" extends="GenerateConfigurationsByAttributeCodeActionGroup">
12+
<annotations>
13+
<description>EXTENDS: generateConfigurationsByAttributeCode. Click to uncheck created option with unique prices. Enter Attribute price</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="attributeOption" type="string" defaultValue="option1"/>
17+
<argument name="attributeSelection" type="string" defaultValue="SomeString"/>
18+
</arguments>
19+
<remove keyForRemoval="clickOnSelectAll"/>
20+
<click selector="{{AdminCreateProductConfigurationsPanel.selectAllByAttribute(attributeSelection)}}" stepKey="selectAllOptionsOfAttribute" before="clickOnNextButton2"/>
21+
<click selector="{{AdminCreateProductConfigurationsPanel.attributeOption(attributeOption)}}" after="selectAllOptionsOfAttribute" stepKey="clickToUncheckOption"/>
22+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" after="clickToUncheckOption" stepKey="clickOnNextButton22"/>
23+
<waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.applySinglePriceToAllSkus}}" after="clickOnNextButton22" stepKey="waitForNextPageOpened2"/>
24+
<click selector="{{AdminCreateProductConfigurationsPanel.applyUniquePricesByAttributeToEachSku}}" after="waitForNextPageOpened2" stepKey="clickOnApplyUniquePricesByAttributeToEachSku"/>
25+
<selectOption selector="{{AdminCreateProductConfigurationsPanel.selectAttribute}}" userInput="{{attributeSelection}}" before="clickOnApplySingleQuantityToEachSku" stepKey="selectAttributes"/>
26+
<fillField selector="{{AdminCreateProductConfigurationsPanel.attribute1}}" userInput="{{colorProductAttribute1.price}}" before="clickOnApplySingleQuantityToEachSku" stepKey="fillAttributePrice1"/>
27+
<fillField selector="{{AdminCreateProductConfigurationsPanel.attribute2}}" userInput="{{colorProductAttribute2.price}}" before="clickOnApplySingleQuantityToEachSku" stepKey="fillAttributePrice2"/>
28+
</actionGroup>
29+
</actionGroups>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="ValidateConfigurableProductPriceIsChangedWhenOptionSelectedTest">
11+
<annotations>
12+
<features value="Catalog"/>
13+
<stories value="Configurable product price is not changed when option is selected"/>
14+
<title value="Validate configurable product price need to be change when option is selected"/>
15+
<description value="Validate configurable product price need to be change when option is selected"/>
16+
<severity value="CRITICAL"/>
17+
<testCaseId value="AC-8423"/>
18+
<group value="Catalog"/>
19+
</annotations>
20+
21+
<before>
22+
<createData entity="ApiCategory" stepKey="createCategory"/>
23+
<createData entity="ApiConfigurableProduct" stepKey="createConfigurableProduct1">
24+
<requiredEntity createDataKey="createCategory"/>
25+
</createData>
26+
<createData entity="ApiConfigurableProduct" stepKey="createConfigurableProduct2">
27+
<requiredEntity createDataKey="createCategory"/>
28+
</createData>
29+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
30+
</before>
31+
<after>
32+
<deleteData createDataKey="createConfigurableProduct1" stepKey="deleteConfigurableProduct1"/>
33+
<deleteData createDataKey="createConfigurableProduct2" stepKey="deleteConfigurableProduct2"/>
34+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
35+
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage">
36+
<argument name="ProductAttribute" value="{{dropdownProductAttribute.attribute_code}}"/>
37+
</actionGroup>
38+
<click stepKey="clickDelete" selector="{{AttributePropertiesSection.DeleteAttribute}}"/>
39+
<click stepKey="clickOk" selector="{{AttributeDeleteModalSection.confirm}}"/>
40+
<waitForPageLoad stepKey="waitForDeletion"/>
41+
<!-- Delete color attribute -->
42+
<actionGroup ref="DeleteProductAttributeActionGroup" stepKey="deleteColorAttribute">
43+
<argument name="ProductAttribute" value="ProductColorAttribute"/>
44+
</actionGroup>
45+
<actionGroup ref="AdminDeleteWidgetActionGroup" stepKey="deleteWidget">
46+
<argument name="widget" value="ConfigurableProductsListWidget"/>
47+
</actionGroup>
48+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
49+
</after>
50+
51+
<!--Navigate to Stores > Attributes > Product.-->
52+
<actionGroup ref="AdminOpenProductAttributePageActionGroup" stepKey="goToProductAttributes"/>
53+
54+
<!--Create new Product Attribute as TextField, with code and default value.-->
55+
<actionGroup ref="CreateProductAttributeActionGroup" stepKey="createAttribute">
56+
<argument name="attribute" value="dropdownProductAttribute"/>
57+
</actionGroup>
58+
59+
<!--Navigate to Product Attribute, add Product Options and Save - 1-->
60+
<actionGroup ref="NavigateToEditProductAttributeActionGroup" stepKey="goToEditPage1">
61+
<argument name="ProductAttribute" value="{{dropdownProductAttribute.attribute_code}}"/>
62+
</actionGroup>
63+
<!-- Set scope to global -->
64+
<actionGroup ref="AdminSwitchScopeForProductAttributeActionGroup" stepKey="switchScopeForProductAttribute"/>
65+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption1">
66+
<argument name="adminName" value="Small"/>
67+
<argument name="frontName" value="Small"/>
68+
<argument name="row" value="1"/>
69+
</actionGroup>
70+
<actionGroup ref="CreateAttributeDropdownNthOptionActionGroup" stepKey="createOption2">
71+
<argument name="adminName" value="Medium"/>
72+
<argument name="frontName" value="Medium"/>
73+
<argument name="row" value="2"/>
74+
</actionGroup>
75+
<actionGroup ref="CreateAttributeDropdownNthOptionAsDefaultActionGroup" stepKey="createOption3">
76+
<argument name="adminName" value="Large"/>
77+
<argument name="frontName" value="Large"/>
78+
<argument name="row" value="3"/>
79+
</actionGroup>
80+
<click stepKey="saveAttribute" selector="{{AttributePropertiesSection.Save}}"/>
81+
<!--Create text swatch attribute with 3 options: Black, White and Blue-->
82+
<actionGroup ref="AddTextSwatchToProductActionGroup" stepKey="addColorAttribute">
83+
<argument name="attributeName" value="{{ProductColorAttribute.frontend_label}}"/>
84+
<argument name="attributeCode" value="{{ProductColorAttribute.attribute_code}}"/>
85+
<argument name="option1" value="Black"/>
86+
<argument name="option2" value="White"/>
87+
<argument name="option3" value="Blue"/>
88+
<argument name="usedInProductListing" value="Yes"/>
89+
</actionGroup>
90+
<amOnPage url="{{AdminProductEditPage.url($createConfigurableProduct1.id$)}}" stepKey="goToConfigurableProduct1"/>
91+
92+
<actionGroup ref="AdminCreateConfigurableProductWithAttributeUncheckOptionWithUniquePricesActionGroup" stepKey="createConfigurationProductWithAttribute1">
93+
<argument name="attributeCode" value="{{dropdownProductAttribute.attribute_code}}"/>
94+
<argument name="attributeOption" value="Medium"/>
95+
<argument name="attributeSelection" value="{{dropdownProductAttribute.attribute_code}}"/>
96+
</actionGroup>
97+
<actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigurableProduct1" />
98+
99+
<amOnPage url="{{AdminProductEditPage.url($createConfigurableProduct2.id$)}}" stepKey="goToConfigurableProduct2"/>
100+
101+
<actionGroup ref="AdminCreateConfigurableProductWithAttributeUncheckOptionWithUniquePricesActionGroup" stepKey="createConfigurationProductWithAttribute2">
102+
<argument name="attributeCode" value="{{ProductColorAttribute.attribute_code}}"/>
103+
<argument name="attributeOption" value="Blue"/>
104+
<argument name="attributeSelection" value="{{ProductColorAttribute.frontend_label}}"/>
105+
</actionGroup>
106+
<actionGroup ref="AdminCreateConfigurableProductWithAttributeUncheckOptionWithUniquePricesActionGroup" stepKey="createConfigurationProductWithAttribute3">
107+
<argument name="attributeCode" value="{{dropdownProductAttribute.attribute_code}}"/>
108+
<argument name="attributeOption" value="Medium"/>
109+
<argument name="attributeSelection" value="{{dropdownProductAttribute.attribute_code}}"/>
110+
</actionGroup>
111+
<actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigurableProduct2" />
112+
<amOnPage url="{{AdminNewWidgetPage.url}}" stepKey="createWidgetPage"/>
113+
<actionGroup ref="AdminCreateConfigurableProductsListWidgetActionGroup" stepKey="fillForm">
114+
<argument name="widget" value="ConfigurableProductsListWidget"/>
115+
<argument name="configProductSku" value="$$createConfigurableProduct1.sku$$"/>
116+
<argument name="widgetTitle" value="Catalog Products List"/>
117+
<argument name="numberOfProductsPerPage" value="1"/>
118+
<argument name="numberOfProductsToDisplay" value="1"/>
119+
</actionGroup>
120+
<amOnPage url="{{StorefrontProductPage.url($$createConfigurableProduct1.custom_attributes[url_key]$$)}}" stepKey="goToStorefrontConfigProductPage1"/>
121+
<waitForPageLoad stepKey="waitForConfigPageLoad"/>
122+
<grabTextFrom selector="{{StorefrontProductInfoMainSection.price}}" stepKey="configProductSmallPriceText"/>
123+
<selectOption userInput="Large +$1.00" selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" stepKey="selectSecondOption"/>
124+
<grabTextFrom selector="{{StorefrontProductInfoMainSection.price}}" stepKey="configProductLargePriceText"/>
125+
<assertNotEquals stepKey="assertChange">
126+
<expectedResult type="string">$configProductSmallPriceText</expectedResult>
127+
<actualResult type="string">$configProductLargePriceText</actualResult>
128+
</assertNotEquals>
129+
</test>
130+
</tests>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminCreateConfigurableProductsListWidgetActionGroup" extends="AdminCreateWidgetActionGroup">
12+
<annotations>
13+
<description>Create a widget for configurable products</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="configProductSku" type="string" defaultValue="someString"/>
17+
<argument name="widgetTitle" type="string" defaultValue="someString"/>
18+
<argument name="numberOfProductsPerPage" type="string" defaultValue="someString"/>
19+
<argument name="numberOfProductsToDisplay" type="string" defaultValue="someString"/>
20+
</arguments>
21+
22+
<selectOption selector="{{AdminNewWidgetSection.specificEntitySelectContainerForConfigurableProduct}}" userInput="{{widget.container}}" stepKey="setContainer"/>
23+
<seeElement selector="{{AdminNewWidgetSection.specificEntitySelectRadioForConfigurableProduct}}" stepKey="seeSpecificEntityRadio" after="waitForPageLoad"/>
24+
<click selector="{{AdminNewWidgetSection.specificEntitySelectRadioForConfigurableProduct}}" stepKey="clickSpecificEntityRadio" after="seeSpecificEntityRadio"/>
25+
<seeElement selector="{{AdminNewWidgetSection.specificEntityOptionsChooserForConfigurableProduct}}" stepKey="seeChooserTrigger" after="clickSpecificEntityRadio"/>
26+
<click selector="{{AdminNewWidgetSection.specificEntityOptionsChooserForConfigurableProduct}}" stepKey="clickChooserTrigger" after="seeChooserTrigger"/>
27+
<waitForAjaxLoad after="clickChooserTrigger" stepKey="waitForAjaxLoad1"/>
28+
<fillField selector="{{AdminNewWidgetSection.selectConfigurableProductSku}}" after="waitForAjaxLoad1" userInput="{{configProductSku}}" stepKey="fillConfigurableProductSku"/>
29+
<click selector="{{AdminNewWidgetSection.searchBlock}}" after="fillConfigurableProductSku" stepKey="searchConfigurableProduct"/>
30+
<waitForAjaxLoad after="searchConfigurableProduct" stepKey="waitForAjaxLoad2"/>
31+
<click selector="{{AdminNewWidgetSection.searchedConfigurableProduct}}" after="waitForAjaxLoad2" stepKey="clickSearchedConfigurableProduct"/>
32+
<fillField selector="{{AdminNewWidgetSection.title}}" userInput="{{widgetTitle}}" stepKey="fillWidgetTitle"/>
33+
<fillField selector="{{AdminNewWidgetSection.numberOfProductsPerPage}}" userInput="{{numberOfProductsPerPage}}" stepKey="fillNumberOfProductsPerPage"/>
34+
<fillField selector="{{AdminNewWidgetSection.numberOfProductsToDisplay}}" userInput="{{numberOfProductsToDisplay}}" stepKey="fillNumberOfProductsToDisplay"/>
35+
<click selector="{{AdminNewWidgetSection.saveWidget}}" stepKey="saveWidget"/>
36+
<waitForPageLoad stepKey="waitForSaving"/>
37+
<see userInput="The widget instance has been saved." stepKey="seeSuccessMessage"/>
38+
</actionGroup>
39+
</actionGroups>

app/code/Magento/Widget/Test/Mftf/Data/WidgetsData.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,16 @@
5858
<data key="display_on">All Pages</data>
5959
<data key="container">Sidebar Main</data>
6060
</entity>
61+
<entity name="ConfigurableProductsListWidget" type="widget">
62+
<data key="type">Catalog Products List</data>
63+
<data key="design_theme">Magento Luma</data>
64+
<data key="name" unique="suffix">TestWidget</data>
65+
<data key="sort_order">0</data>
66+
<array key="store_ids">
67+
<item>All Store Views</item>
68+
</array>
69+
<data key="condition">SKU</data>
70+
<data key="display_on">Configurable Product</data>
71+
<data key="container">Main Content Area</data>
72+
</entity>
6173
</entities>

app/code/Magento/Widget/Test/Mftf/Section/AdminNewWidgetSection.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,14 @@
5555
<element name="numberOfProductsToDisplay" type="input" selector="[name='parameters[products_count]']"/>
5656
<element name="template" type="select" selector="[name='parameters[template]']"/>
5757
<element name="cacheLifetime" type="input" selector="[name='parameters[cache_lifetime]']"/>
58-
<element name="deleteWidgetLayoutAction" type="button" selector="#page_group_container > div:first-of-type > div.fieldset-wrapper-title > div > .action-default.action-delete"/>
58+
<element name="deleteWidgetLayoutAction" type="button" selector="#page_group_container > div:first-of-type > div.fieldset-wrapper-title > div > .action-default.action-delete"/>
5959
<element name="CountDeleteButtons" type="button" selector="#page_group_container > .fieldset-wrapper.page_group_container > div.fieldset-wrapper-title > div > .action-default.action-delete"/>
60+
<element name="specificEntitySelectContainerForConfigurableProduct" type="select" selector="select[name='widget_instance[0][configurable_products][block]']"/>
61+
<element name="specificEntitySelectRadioForConfigurableProduct" type="input" selector="#specific_configurable_products_0"/>
62+
<element name="specificEntityOptionsChooserForConfigurableProduct" type="button" selector="#configurable_products_ids_0 .widget-option-chooser"/>
63+
<element name="selectConfigurableProductSku" type="input" selector="//input[@name='chooser_sku']"/>
64+
<element name="searchedConfigurableProduct" type="button" selector="//*[@class='data-grid']//tbody/tr/td[1]"/>
65+
<element name="numberOfProductsPerPage" type="input" selector="[name='parameters[products_per_page]']"/>
6066
</section>
6167
</sections>
6268

0 commit comments

Comments
 (0)