Skip to content

Commit 6087f0f

Browse files
Merge branch 'develop' into ACQE-functional-deployment-v4-6
2 parents 9699e88 + 2b9fa73 commit 6087f0f

File tree

1 file changed

+244
-0
lines changed

1 file changed

+244
-0
lines changed
Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
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="AdminVerifySalableQuantityOfSourceAndStockForProductAfterRefundTest">
12+
<annotations>
13+
<stories value="MSI source lifecycle and quantity validation"/>
14+
<title value="Admin adds source, links to stock, completes order refund and checks product quantities"/>
15+
<description value="Admin validates credit memo for order with 2 Simple products on Test stock after full invoice created"/>
16+
<testCaseId value="AC-6583"/>
17+
<severity value="AVERAGE"/>
18+
<group value="msi"/>
19+
<group value="WYSIWYGDisabled"/>
20+
</annotations>
21+
<before>
22+
<!-- Precondition Step 1: Login As Admin -->
23+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
24+
</before>
25+
<after>
26+
<!--Clean up test data.-->
27+
<actionGroup ref="DisableAllSourcesActionGroup" stepKey="disableAllSources"/>
28+
<!--Assign Main Website to Default stock -->
29+
<actionGroup ref="AssignWebsiteToStockActionGroup" stepKey="assignMainWebsiteToDefaultStock">
30+
<argument name="stockName" value="{{_defaultStock.name}}"/>
31+
<argument name="websiteName" value="{{_defaultWebsite.name}}"/>
32+
</actionGroup>
33+
<!--Admin Logout-->
34+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutOfAdmin"/>
35+
<!-- Logout from Storefront-->
36+
<actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="logoutCustomer"/>
37+
<!--Delete test data.-->
38+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
39+
<deleteData createDataKey="createStock" stepKey="deleteCustomStock"/>
40+
<deleteData createDataKey="createSubCategory" stepKey="deleteCategory"/>
41+
</after>
42+
<!-- Step 1: Create New Category -->
43+
<createData entity="SimpleSubCategory" stepKey="createSubCategory"/>
44+
<!-- Step 2: Create New Source -->
45+
<createData entity="FullSource1" stepKey="createSource1"/>
46+
<createData entity="FullSource1" stepKey="createSource2"/>
47+
<!-- Step 3: New Stock created with New Source assigned and with Main Website assigned as Sales Channel -->
48+
<createData entity="BasicMsiStock2" stepKey="createStock"/>
49+
<actionGroup ref="AdminEditStockActionGroup" stepKey="adminEditCreatedStock">
50+
<argument name="stockName" value="$$createStock.stock[name]$$"/>
51+
</actionGroup>
52+
<!-- Step 4&5: Select "Test Source 1" in sources list and Click button "Done" -->
53+
<actionGroup ref="AdminAssignSourceToStockActionGroup" stepKey="assignSource1ToStock1">
54+
<argument name="sourceName" value="$$createSource1.source[name]$$"/>
55+
</actionGroup>
56+
<!-- Step 6: Click button "Save & close" -->
57+
<actionGroup ref="AdminFormSaveAndCloseActionGroup" stepKey="clickSaveAndCloseButton"/>
58+
<!-- Step 7: Run full reindex and flush cache -->
59+
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="performReindex">
60+
<argument name="indices" value=""/>
61+
</actionGroup>
62+
<actionGroup ref="CliCacheFlushActionGroup" stepKey="cleanCache">
63+
<argument name="tags" value=""/>
64+
</actionGroup>
65+
<waitForPageLoad stepKey="waitForGridReload"/>
66+
<!-- Step 8: 2 Simple Products with additional Source assigned created -->
67+
<createData entity="SimpleProduct" stepKey="createMSISimpleProduct1">
68+
<requiredEntity createDataKey="createSubCategory"/>
69+
<field key="price">10</field>
70+
</createData>
71+
<createData entity="SimpleProduct" stepKey="createMSISimpleProduct2">
72+
<requiredEntity createDataKey="createSubCategory"/>
73+
<field key="price">10</field>
74+
</createData>
75+
<actionGroup ref="AssignWebsiteToStockActionGroup" stepKey="assignStockToAdditionalWebsite">
76+
<argument name="stockName" value="$$createStock.stock[name]$$"/>
77+
<argument name="websiteName" value="{{_defaultWebsite.name}}"/>
78+
</actionGroup>
79+
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="openSimpleProductForEdit">
80+
<argument name="productId" value="$createMSISimpleProduct1.id$"/>
81+
</actionGroup>
82+
<actionGroup ref="AssignSourceToProductActionGroup" stepKey="assignTestSourceToCreatedProduct">
83+
<argument name="sourceCode" value="$$createSource1.source[source_code]$$"/>
84+
</actionGroup>
85+
<waitForElementVisible selector="{{AdminProductSourcesGrid.rowQty('1')}}" stepKey="seeProductQuantity"/>
86+
<fillField selector="{{AdminProductSourcesGrid.rowQty('1')}}" userInput="100" stepKey="setProductQuantity"/>
87+
<actionGroup ref="AdminOpenContentSectionOnProductPageActionGroup" stepKey="openContentTab"/>
88+
<waitForElementVisible selector="{{AdminProductContentSection.descriptionTextArea}}" stepKey="clickOnSaveAndContinue1"/>
89+
<actionGroup ref="AdminFillInProductDescriptionActionGroup" stepKey="editDescription">
90+
<argument name="description" value="{{ApiProductDescription.value}}"/>
91+
</actionGroup>
92+
<actionGroup ref="AdminFormSaveAndCloseActionGroup" stepKey="saveAndClose"/>
93+
<actionGroup ref="AdminProductPageOpenByIdActionGroup" stepKey="openProductForEdit">
94+
<argument name="productId" value="$createMSISimpleProduct2.id$"/>
95+
</actionGroup>
96+
<actionGroup ref="AssignSourceToProductActionGroup" stepKey="assignTestSourceToCreatedSimpleProduct">
97+
<argument name="sourceCode" value="$$createSource1.source[source_code]$$"/>
98+
</actionGroup>
99+
<waitForElementVisible selector="{{AdminProductSourcesGrid.rowQty('1')}}" stepKey="seeProductQty"/>
100+
<fillField selector="{{AdminProductSourcesGrid.rowQty('1')}}" userInput="100" stepKey="setProductQty"/>
101+
<actionGroup ref="AdminOpenContentSectionOnProductPageActionGroup" stepKey="openContent"/>
102+
<actionGroup ref="AdminFillInProductDescriptionActionGroup" stepKey="editLongDescription">
103+
<argument name="description" value="{{ApiProductDescription.value}}"/>
104+
</actionGroup>
105+
<actionGroup ref="AdminFormSaveAndCloseActionGroup" stepKey="saveAndCloseButton"/>
106+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="openProductIndexPage1"/>
107+
<actionGroup ref="FilterProductGridByNameActionGroup" stepKey="searchForProduct1">
108+
<argument name="product" value="$createMSISimpleProduct1$"/>
109+
</actionGroup>
110+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="verifyProductNameInGrid">
111+
<argument name="column" value="Name"/>
112+
<argument name="value" value="$createMSISimpleProduct1.name$"/>
113+
</actionGroup>
114+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="verifyProductSkuInGrid">
115+
<argument name="column" value="SKU"/>
116+
<argument name="value" value="$createMSISimpleProduct1.sku$"/>
117+
</actionGroup>
118+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="verifyProductPriceInGrid">
119+
<argument name="column" value="Price"/>
120+
<argument name="value" value="$10.00"/>
121+
</actionGroup>
122+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="verifyProductWebsiteInGrid">
123+
<argument name="column" value="Websites"/>
124+
<argument name="value" value="{{_defaultWebsite.name}}"/>
125+
</actionGroup>
126+
<actionGroup ref="FilterProductGridByNameActionGroup" stepKey="searchForProduct2">
127+
<argument name="product" value="$createMSISimpleProduct2$"/>
128+
</actionGroup>
129+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="assertProductNameInGrid">
130+
<argument name="column" value="Name"/>
131+
<argument name="value" value="$createMSISimpleProduct2.name$"/>
132+
</actionGroup>
133+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="verifyItemSkuInGrid">
134+
<argument name="column" value="SKU"/>
135+
<argument name="value" value="$createMSISimpleProduct2.sku$"/>
136+
</actionGroup>
137+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="assertProductPriceInGrid">
138+
<argument name="column" value="Price"/>
139+
<argument name="value" value="$10.00"/>
140+
</actionGroup>
141+
<actionGroup ref="AssertAdminProductGridCellActionGroup" stepKey="assertProductWebsiteInGrid">
142+
<argument name="column" value="Websites"/>
143+
<argument name="value" value="{{_defaultWebsite.name}}"/>
144+
</actionGroup>
145+
<!-- Step 9: Customer created from Main website -->
146+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
147+
<!-- Step 10: Logged in Customer create order with 2 Simple products -->
148+
<actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStorefront">
149+
<argument name="Customer" value="$$createCustomer$$"/>
150+
</actionGroup>
151+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openEnabledCategory">
152+
<argument name="categoryName" value="$$createSubCategory.name$$"/>
153+
</actionGroup>
154+
<actionGroup ref="StorefrontOpenProductEntityPageActionGroup" stepKey="navigateToProduct1ProductDetailsPage">
155+
<argument name="product" value="$createMSISimpleProduct1$"/>
156+
</actionGroup>
157+
<actionGroup ref="StorefrontProductPageAddSimpleProductToCartActionGroup" stepKey="addSimpleProductToCart"/>
158+
<waitForPageLoad stepKey="waitForCartPageToLoad"/>
159+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategory">
160+
<argument name="categoryName" value="$$createSubCategory.name$$"/>
161+
</actionGroup>
162+
<actionGroup ref="StorefrontOpenProductEntityPageActionGroup" stepKey="navigateToProduct2ProductDetailsPage">
163+
<argument name="product" value="$createMSISimpleProduct2$"/>
164+
</actionGroup>
165+
<actionGroup ref="StorefrontProductPageAddSimpleProductToCartActionGroup" stepKey="addSimpleProduct1ToCart"/>
166+
<actionGroup ref="StorefrontOpenMiniCartActionGroup" stepKey="clickOnMiniCart"/>
167+
<waitForElementClickable selector="{{StorefrontMinicartSection.goToCheckout}}" stepKey="waitToClickCheckout"/>
168+
<click selector="{{StorefrontMinicartSection.goToCheckout}}" stepKey="goToCheckout"/>
169+
<actionGroup ref="StorefrontCheckoutClickNextOnShippingStepActionGroup" stepKey="clickNext"/>
170+
<!-- Checkout select Check/Money Order payment -->
171+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyPayment"/>
172+
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="clickPlaceOrder"/>
173+
<waitForElementVisible selector="{{CheckoutSuccessMainSection.successTitle}}" stepKey="waitForLoadSuccessPageTitle"/>
174+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="grabOrderNumber"/>
175+
<!--Assert order in orders grid -->
176+
<actionGroup ref="OpenOrderByIdActionGroup" stepKey="openFirstOrderPage">
177+
<argument name="orderId" value="{$grabOrderNumber}"/>
178+
</actionGroup>
179+
<!-- Step 11: Invoice created for whole order -->
180+
<actionGroup ref="StartCreateInvoiceFromOrderPageActionGroup" stepKey="startCreateInvoice"/>
181+
<!-- Step 12: Click button "Submit Invoice" -->
182+
<actionGroup ref="SubmitInvoiceActionGroup" stepKey="submitInvoice"/>
183+
<actionGroup ref="AdminOpenInvoiceTabFromOrderPageActionGroup" stepKey="openInvoiceTab"/>
184+
<waitForElementClickable selector="{{AdminOrderInvoicesTabSection.viewInvoice}}" stepKey="waitForInvoicesTabOpened"/>
185+
<click selector="{{AdminOrderInvoicesTabSection.viewInvoice}}" stepKey="clickViewInvoice"/>
186+
<waitForElementClickable selector="{{AdminInvoiceTotalSection.backButton}}" stepKey="waitForBackButtonToBeClicked"/>
187+
<click selector="{{AdminInvoiceTotalSection.backButton}}" stepKey="clickOnBackButton"/>
188+
<!-- Step 13: Credit Memo created with 'Return to stock' for one product only-->
189+
<actionGroup ref="AdminCreateCreditMemoReturnToStockActionGroup" stepKey="createCreditMemo"/>
190+
<actionGroup ref="SubmitCreditMemoActionGroup" stepKey="submitCreditMemo"/>
191+
<waitForElementClickable selector="{{AdminOrderDetailsOrderViewSection.creditMemos}}" stepKey="waitToClickCreditMemoTab"/>
192+
<click selector="{{AdminOrderDetailsOrderViewSection.creditMemos}}" stepKey="clickCreditMemoTab"/>
193+
<waitForPageLoad stepKey="waitForTabLoad"/>
194+
<grabTextFrom selector="{{AdminCreditMemosGridSection.memoId}}" stepKey="grabMemoId"/>
195+
<assertNotEmpty stepKey="assertMemoIdIsNotEmpty" after="grabMemoId">
196+
<actualResult type="const">$grabMemoId</actualResult>
197+
</assertNotEmpty>
198+
<waitForElementClickable selector="{{AdminCreditMemosGridSection.memoId}}" stepKey="waitToClickView"/>
199+
<click selector="{{AdminCreditMemosGridSection.memoId}}" stepKey="clickView"/>
200+
<waitForPageLoad stepKey="waitForCreditMemo"/>
201+
<scrollTo selector="{{AdminCreditMemoViewTotalSection.subtotal}}" stepKey="scrollToTotal"/>
202+
<waitForText selector="{{AdminCreditMemoViewTotalSection.subtotal}}" userInput="$20.00" stepKey="seeSubtotal"/>
203+
<waitForText selector="{{AdminCreditMemoViewTotalSection.adjustmentRefund}}" userInput="$0.00" stepKey="seeAdjustmentRefund"/>
204+
<waitForText selector="{{AdminCreditMemoViewTotalSection.adjustmentFee}}" userInput="$0.00" stepKey="seeAdjustmentFee"/>
205+
<waitForText selector="{{AdminCreditMemoViewTotalSection.grandTotal}}" userInput="$30.00" stepKey="assertRefundOnCreditMemoTab"/>
206+
<!-- Assert CreditMemo items -->
207+
<scrollTo selector="{{AdminCreditMemoViewItemsSection.blockItemsRefunded}}" stepKey="scrollToRefundedItems"/>
208+
<waitForText selector="{{AdminCreditMemoItemsSection.itemName('1')}}" userInput="$$createMSISimpleProduct1.name$$" stepKey="seeProductName"/>
209+
<waitForText selector="{{AdminCreditMemoItemsSection.itemPrice('1')}}" userInput="$10.00" stepKey="seePricePerItem"/>
210+
<waitForText selector="{{AdminCreditMemoItemsSection.itemSubtotal('1')}}" userInput="$10.00" stepKey="seeProductSubtotalInCreditMemo"/>
211+
<waitForText selector="{{AdminCreditMemoItemsSection.itemTotal('1')}}" userInput="$10.00" stepKey="seeProductTotalInCreditMemo"/>
212+
<waitForText selector="{{AdminCreditMemoItemsSection.itemName('2')}}" userInput="$$createMSISimpleProduct2.name$$" stepKey="assertProductNameInCreditMemo"/>
213+
<waitForText selector="{{AdminCreditMemoItemsSection.itemPrice('2')}}" userInput="$10.00" stepKey="assertProductPriceInCreditMemo"/>
214+
<waitForText selector="{{AdminCreditMemoItemsSection.itemSubtotal('2')}}" userInput="$10.00" stepKey="assertProductSubtotalInCreditMemo"/>
215+
<waitForText selector="{{AdminCreditMemoItemsSection.itemTotal('2')}}" userInput="$10.00" stepKey="assertProductTotalInCreditMemo"/>
216+
<!--Assert refund in refunds grid-->
217+
<actionGroup ref="AdminAssertRefundInRefundsGridActionGroup" stepKey="assertRefund">
218+
<argument name="orderId" value="{$grabOrderNumber}"/>
219+
<argument name="memoId" value="{$grabMemoId}"/>
220+
<argument name="refundStatus" value="{{OrderState.refund}}"/>
221+
<argument name="refundedTotal" value="$30.00"/>
222+
</actionGroup>
223+
<!-- Step 14: Verify that items of Simple products on Test stock returned correctly after making refund -->
224+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="openProductIndexPage"/>
225+
<actionGroup ref="FilterProductGridByNameActionGroup" stepKey="searchForProduct">
226+
<argument name="product" value="$createMSISimpleProduct1$"/>
227+
</actionGroup>
228+
<actionGroup ref="AssertAdminSalableProductQtyActionGroup" stepKey="verifyProductQuantityAfterCreditMemo">
229+
<argument name="sourceName" value="$createSource1.source[name]$"/>
230+
<argument name="stockName" value="$createStock.stock[name]$"/>
231+
<argument name="sourceQty" value="{{defaultProductQty.value}}"/>
232+
<argument name="stockQty" value="{{defaultProductQty.value}}"/>
233+
</actionGroup>
234+
<actionGroup ref="FilterProductGridByNameActionGroup" stepKey="searchForSimpleProduct2">
235+
<argument name="product" value="$createMSISimpleProduct2$"/>
236+
</actionGroup>
237+
<actionGroup ref="AssertAdminSalableProductQtyActionGroup" stepKey="verifyProductQuantity">
238+
<argument name="sourceName" value="$createSource1.source[name]$"/>
239+
<argument name="stockName" value="$createStock.stock[name]$"/>
240+
<argument name="sourceQty" value="{{defaultProductQtyBoughtWithOnePiece.value}}"/>
241+
<argument name="stockQty" value="{{defaultProductQtyBoughtWithOnePiece.value}}"/>
242+
</actionGroup>
243+
</test>
244+
</tests>

0 commit comments

Comments
 (0)