Skip to content

Commit c54f1d7

Browse files
author
Hwashiang Yu
committed
MC-4234: Missing validation message for 'Number of Products to Display' on Product Content Type
- Updated products form to have validation for product count - Updated test to check for min max type validation for product count - Removed messaging for product count
1 parent 9a9a039 commit c54f1d7

File tree

3 files changed

+110
-10
lines changed

3 files changed

+110
-10
lines changed

app/code/Magento/PageBuilder/Test/Mftf/Data/ProductsData.xml

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,44 @@
99
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
1111
<entity name="PageBuilderProductsCountProperty" type="pagebuilder_content_type">
12-
<data key="name">Products Count</data>
13-
<data key="section">display</data>
12+
<data key="name">Number of Products to Display</data>
13+
<data key="section">general</data>
1414
<data key="fieldName">products_count</data>
1515
<data key="value">4</data>
1616
</entity>
17+
<entity name="PageBuilderProductsCountPropertyOne" type="pagebuilder_content_type">
18+
<data key="name">Number of Products to Display</data>
19+
<data key="section">general</data>
20+
<data key="fieldName">products_count</data>
21+
<data key="value">1</data>
22+
</entity>
23+
<entity name="PageBuilderProductsCountPropertyTwo" type="pagebuilder_content_type">
24+
<data key="name">Number of Products to Display</data>
25+
<data key="section">general</data>
26+
<data key="fieldName">products_count</data>
27+
<data key="value">2</data>
28+
</entity>
29+
<entity name="PageBuilderProductsInvalidMinCountProperty" type="pagebuilder_content_type">
30+
<data key="name">Number of Products to Display</data>
31+
<data key="section">general</data>
32+
<data key="fieldName">products_count</data>
33+
<data key="value">0</data>
34+
<data key="errorMessage">Please enter a value greater than or equal to 1.</data>
35+
</entity>
36+
<entity name="PageBuilderProductsInvalidMaxCountProperty" type="pagebuilder_content_type">
37+
<data key="name">Number of Products to Display</data>
38+
<data key="section">general</data>
39+
<data key="fieldName">products_count</data>
40+
<data key="value">1000</data>
41+
<data key="errorMessage">Please enter a value less than or equal to 999.</data>
42+
</entity>
43+
<entity name="PageBuilderProductsInvalidTypeCountProperty" type="pagebuilder_content_type">
44+
<data key="name">Number of Products to Display</data>
45+
<data key="section">general</data>
46+
<data key="fieldName">products_count</data>
47+
<data key="value">Invalid</data>
48+
<data key="errorMessage">Please enter a valid number in this field.</data>
49+
</entity>
1750
<entity name="PageBuilderProductsSubCategory" type="category">
1851
<data key="name" unique="suffix">PageBuilderProductsSubCategory</data>
1952
<data key="is_active">true</data>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderProductsTest.xml

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,18 +168,39 @@
168168
<actionGroup ref="dragContentTypeToStage" stepKey="dragProductsIntoStage">
169169
<argument name="contentType" value="PageBuilderProductsContentType"/>
170170
</actionGroup>
171-
172171
<!-- Add both products from the created category -->
173172
<actionGroup ref="addCategoryConditionToProductsBlock" stepKey="addCategory">
174173
<argument name="page" value="ProductsContentTypeForm"/>
175174
<argument name="category" value="$$createPreReqCategory.id$$"/>
176175
</actionGroup>
177-
178-
<!-- Only one of them should be showing -->
179176
<waitForElementVisible selector="{{ProductsContentTypeForm.productsCountInput}}" stepKey="waitForProductCountToBeVisible"/>
180177
<waitForLoadingMaskToDisappear stepKey="waitForConditionsToLoad"/>
181-
<fillField selector="{{ProductsContentTypeForm.productsCountInput}}" userInput="1" stepKey="fillProductsCountField"/>
182-
178+
<!-- Check form field validations -->
179+
<comment userInput="Check form field validations" stepKey="commentCheckFormFieldValidations"/>
180+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterInvalidMinProductsCount">
181+
<argument name="property" value="PageBuilderProductsInvalidMinCountProperty"/>
182+
</actionGroup>
183+
<actionGroup ref="saveEditPanelAndValidateFieldErrorGeneralSection" stepKey="validateInvalidMinCount">
184+
<argument name="property" value="PageBuilderProductsInvalidMinCountProperty"/>
185+
</actionGroup>
186+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterInvalidMaxProductsCount">
187+
<argument name="property" value="PageBuilderProductsInvalidMaxCountProperty"/>
188+
</actionGroup>
189+
<actionGroup ref="saveEditPanelAndValidateFieldErrorGeneralSection" stepKey="validateInvalidMaxCount">
190+
<argument name="property" value="PageBuilderProductsInvalidMaxCountProperty"/>
191+
</actionGroup>
192+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterInvalidTypeProductsCount">
193+
<argument name="property" value="PageBuilderProductsInvalidTypeCountProperty"/>
194+
</actionGroup>
195+
<actionGroup ref="saveEditPanelAndValidateFieldErrorGeneralSection" stepKey="validateInvalidTypeProductsCount">
196+
<argument name="property" value="PageBuilderProductsInvalidTypeCountProperty"/>
197+
</actionGroup>
198+
<!-- Only one of them should be showing -->
199+
<comment userInput="Set only one of them should be showing" stepKey="commentSetOnlyOneShouldBeShowing"/>
200+
<!--<fillField selector="{{ProductsContentTypeForm.productsCountInput}}" userInput="1" stepKey="fillProductsCountField"/>-->
201+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterOneProductsCount">
202+
<argument name="property" value="PageBuilderProductsCountPropertyOne"/>
203+
</actionGroup>
183204
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings"/>
184205
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage"/>
185206
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
@@ -192,18 +213,60 @@
192213
<actionGroup ref="validateProductInProductsOnStage" stepKey="validateProductsStage">
193214
<argument name="page" value="ProductsOnStage"/>
194215
</actionGroup>
216+
<!-- Validate Storefront -->
217+
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
218+
<openNewTab stepKey="openNewTab"/>
195219
<actionGroup ref="navigateToStoreFront" stepKey="navigateToStoreFront">
196220
<argument name="contentType" value="PageBuilderProductsContentType"/>
197221
</actionGroup>
198-
<!-- Validate Storefront -->
199-
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront"/>
200222
<actionGroup ref="validateProductCountInProducts" stepKey="validateProductCountStorefront">
201223
<argument name="page" value="ProductsOnStorefront"/>
202224
<argument name="count" value="1"/>
203225
</actionGroup>
204226
<actionGroup ref="validateProductInProducts" stepKey="validateProductsStorefront">
205227
<argument name="page" value="ProductsOnStorefront"/>
206228
</actionGroup>
229+
<!-- Switch Back To Backend -->
230+
<comment userInput="Switch Back To Backend" stepKey="commentSwitchToBackend"/>
231+
<switchToNextTab stepKey="switchToNextTab"/>
232+
<reloadPage stepKey="reloadPage"/>
233+
<waitForPageLoad stepKey="waitForPageLoad"/>
234+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage3"/>
235+
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStage">
236+
<argument name="contentType" value="PageBuilderProductsContentType"/>
237+
</actionGroup>
238+
<!-- Two products should be showing -->
239+
<comment userInput="Two products should be showing " stepKey="commentTwoProductsShouldBeShowing"/>
240+
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterTwoProductsCount">
241+
<argument name="property" value="PageBuilderProductsCountPropertyTwo"/>
242+
</actionGroup>
243+
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettings2"/>
244+
<actionGroup ref="saveAndContinueEditCmsPage" stepKey="saveAndContinueEditCmsPage2"/>
245+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage2"/>
246+
<!-- Validate Stage After Save -->
247+
<comment userInput="Validate Stage" stepKey="commentValidateStage2"/>
248+
<actionGroup ref="validateProductCountInProducts" stepKey="validateProductsCountStage2">
249+
<argument name="page" value="ProductsOnStage"/>
250+
<argument name="count" value="2"/>
251+
</actionGroup>
252+
<actionGroup ref="validateProductInProductsOnStage" stepKey="validateProductsStage2">
253+
<argument name="page" value="ProductsOnStage"/>
254+
</actionGroup>
255+
<actionGroup ref="ClearCacheActionGroup" stepKey="clearMagentoCache"/>
256+
<!-- Switch Back To Frontend -->
257+
<comment userInput="Switch Back To Frontend" stepKey="commentSwitchToFrontend"/>
258+
<switchToNextTab stepKey="switchToNextTab2"/>
259+
<reloadPage stepKey="reloadPage2"/>
260+
<waitForPageLoad stepKey="waitForPageLoad2"/>
261+
<!-- Validate Storefront -->
262+
<comment userInput="Validate Storefront" stepKey="commentValidateStorefront2"/>
263+
<actionGroup ref="validateProductCountInProducts" stepKey="validateProductCountStorefront2">
264+
<argument name="page" value="ProductsOnStorefront"/>
265+
<argument name="count" value="2"/>
266+
</actionGroup>
267+
<actionGroup ref="validateProductInProducts" stepKey="validateProductsStorefront2">
268+
<argument name="page" value="ProductsOnStorefront"/>
269+
</actionGroup>
207270
</test>
208271
<test name="AdminPageBuilderProductsConfigurationIsPersistent">
209272
<annotations>

app/code/Magento/PageBuilder/view/adminhtml/ui_component/pagebuilder_products_form.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,12 @@
101101
<additionalClasses>
102102
<class name="admin__field-small">true</class>
103103
</additionalClasses>
104-
<notice translate="true">Defaults to 5.</notice>
105104
<dataScope>products_count</dataScope>
105+
<validation>
106+
<rule name="validate-number" xsi:type="boolean">true</rule>
107+
<rule name="less-than-equals-to" xsi:type="number">999</rule>
108+
<rule name="greater-than-equals-to" xsi:type="number">1</rule>
109+
</validation>
106110
</settings>
107111
</field>
108112
</fieldset>

0 commit comments

Comments
 (0)