Skip to content

Commit 2b6fd31

Browse files
pradeep1819devarul
authored andcommitted
ACP2E-1496: [Magento Cloud] - One-time use coupon per customer becomes invalid even when order was cancelled
1 parent 29dbfce commit 2b6fd31

File tree

2 files changed

+164
-0
lines changed

2 files changed

+164
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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="CreateCartPriceRuleActionGroup">
12+
<annotations>
13+
<description>Goes to the Admin Cart Price Rule grid page. Clicks on Add New Rule. Fills the provided Rule (Name). Selects websites menu.</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="ruleName" type="string" defaultValue="{{CatPriceRule.name}}"/>
17+
<argument name="websiteName" type="string" defaultValue="{{CatPriceRule.websites}}"/>
18+
</arguments>
19+
20+
<amOnPage url="{{AdminCartPriceRulesPage.url}}" stepKey="amOnCartPriceList"/>
21+
<waitForPageLoad stepKey="waitForPriceList"/>
22+
<click selector="{{AdminCartPriceRulesSection.addNewRuleButton}}" stepKey="clickAddNewRule"/>
23+
<fillField selector="{{AdminCartPriceRulesFormSection.ruleName}}" userInput="{{ruleName}}" stepKey="fillRuleName"/>
24+
<selectOption selector="{{AdminCartPriceRulesFormSection.websites}}" userInput="{{websiteName}}" stepKey="selectWebsites"/>
25+
</actionGroup>
26+
</actionGroups>
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
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="StorefrontReuseCouponCodeAfterOrderCanceledTest">
12+
<annotations>
13+
<features value="SalesRule"/>
14+
<stories value="One-time use coupon per customer becomes invalid even when order was cancelled"/>
15+
<title value="[Magento Cloud] - One-time use coupon per customer becomes invalid even when order was cancelled"/>
16+
<description value="[Magento Cloud] - One-time use coupon per customer becomes invalid even when order was cancelled."/>
17+
<severity value="AVERAGE"/>
18+
<testCaseId value="AC-7591"/>
19+
<useCaseId value="ACP2E-1496"/>
20+
<group value="salesRule"/>
21+
</annotations>
22+
23+
<before>
24+
<!-- Create customer -->
25+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
26+
<!-- Create simple product-->
27+
<createData entity="SimpleProduct2" stepKey="createSimpleProduct"/>
28+
<!-- Login as Admin -->
29+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
30+
</before>
31+
32+
<after>
33+
<!-- Delete the cart price rule we made during the test -->
34+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
35+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteSimpleProduct"/>
36+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
37+
</after>
38+
39+
<!-- Add new cart price rule -->
40+
<actionGroup ref="CreateCartPriceRuleActionGroup" stepKey="createCartRule">
41+
<argument name="ruleName" value="{{CatPriceRule.name}}"/>
42+
<argument name="websiteName" value="{{CatPriceRule.websites}}"/>
43+
</actionGroup>
44+
45+
<!-- Select custom customer group -->
46+
<actionGroup ref="CatalogSelectCustomerGroupActionGroup" stepKey="selectCustomCustomerGroup">
47+
<argument name="customerGroupName" value="{{GeneralCustomerGroup.code}}"/>
48+
</actionGroup>
49+
50+
<!-- Cart Price Rule coupon info -->
51+
<actionGroup ref="AdminCartPriceRuleFillCouponInfoActionGroup" stepKey="fillCartPriceRuleCouponInfo">
52+
<argument name="couponCode" value="{{CatPriceRule.coupon_code}}"/>
53+
<argument name="userPerCoupon" value="1"/>
54+
<argument name="userPerCustomer" value="1"/>
55+
</actionGroup>
56+
57+
<scrollTo selector="{{AdminCartPriceRulesFormSection.actionsHeader}}" stepKey="scrollToActionsHeader"/>
58+
<!--Fill values for Action Section-->
59+
<actionGroup ref="AdminCreateCartPriceRuleActionsSectionDiscountFieldsActionGroup" stepKey="createActiveCartPriceRuleActionsSection">
60+
<argument name="rule" value="CartPriceRuleConditionAndFreeShippingApplied"/>
61+
</actionGroup>
62+
63+
<scrollTo selector="{{AdminCartPriceRulesFormSection.labelsHeader}}" stepKey="scrollToLabelsHeader"/>
64+
<!--Save Cart Price Rule-->
65+
<actionGroup ref="AssertCartPriceRuleSuccessSaveMessageActionGroup" stepKey="seeAssertCartPriceRuleSuccessSaveMessage"/>
66+
67+
<!--Login to Frontend-->
68+
<actionGroup ref="LoginToStorefrontActionGroup" stepKey="customerLogin">
69+
<argument name="Customer" value="$$createCustomer$$" />
70+
</actionGroup>
71+
72+
<!-- Open the Product Page, add the product to Cart, go to Shopping Cart and Apply the same coupon code -->
73+
<amOnPage url="{{StorefrontProductPage.url($$createSimpleProduct.custom_attributes[url_key]$$)}}" stepKey="openProductPage"/>
74+
<waitForPageLoad stepKey="waitForPageLoad2"/>
75+
<actionGroup ref="ApplyCartRuleOnStorefrontActionGroup" stepKey="applyCartPriceRule">
76+
<argument name="product" value="$$createSimpleProduct$$"/>
77+
<argument name="couponCode" value="{{CatPriceRule.coupon_code}}"/>
78+
</actionGroup>
79+
<waitForText userInput='You used coupon code "{{CatPriceRule.coupon_code}}"' stepKey="waitForText"/>
80+
<see selector="{{StorefrontMessagesSection.success}}" userInput='You used coupon code "{{CatPriceRule.coupon_code}}"' stepKey="seeSuccessMessage1"/>
81+
<waitForElementVisible selector="{{CheckoutCartSummarySection.discountAmount}}" time="30" stepKey="waitForElementDiscountVisible"/>
82+
83+
<!--Proceed to checkout for customer details-->
84+
<actionGroup ref="StorefrontClickProceedToCheckoutActionGroup" stepKey="clickProceedToCheckout"/>
85+
<waitForElement selector="{{CheckoutShippingSection.shippingTab}}" stepKey="waitForCheckoutPage"/>
86+
<actionGroup ref="CheckoutSelectFlatRateShippingMethodActionGroup" stepKey="selectFlatRate"/>
87+
<actionGroup ref="StorefrontCheckoutForwardFromShippingStepActionGroup" stepKey="goToReview"/>
88+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyOrder"/>
89+
<actionGroup ref="CheckoutPlaceOrderActionGroup" stepKey="clickOnPlaceOrder">
90+
<argument name="orderNumberMessage" value="CONST.successCheckoutOrderNumberMessage"/>
91+
<argument name="emailYouMessage" value="CONST.successCheckoutEmailYouMessage"/>
92+
</actionGroup>
93+
<magentoCLI command="cron:run" stepKey="runCronAfterPlacingOrder"/>
94+
95+
<!-- Get Order id -->
96+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="grabOrderNumber"/>
97+
<!-- Assert Cart is Empty -->
98+
<actionGroup ref="AssertShoppingCartIsEmptyActionGroup" stepKey="seeEmptyShoppingCartForFirstCustomer"/>
99+
100+
<!--Assert Order is In Orders Grid -->
101+
<actionGroup ref="AdminOrderFilterByOrderIdAndStatusActionGroup" stepKey="seeFirstOrder">
102+
<argument name="orderId" value="$grabOrderNumber"/>
103+
<argument name="orderStatus" value="Pending"/>
104+
</actionGroup>
105+
106+
<!-- Navigate to admin order detail page -->
107+
<amOnPage url="{{AdminOrderPage.url({$grabOrderNumber})}}" stepKey="navigateToOrderPage1"/>
108+
<seeInCurrentUrl url="{{AdminOrderDetailsPage.url}}" stepKey="seeViewOrderPage" after="navigateToOrderPage1"/>
109+
<see selector="{{AdminOrderDetailsInformationSection.orderStatus}}" userInput="Pending" stepKey="seeOrderPendingStatus" after="seeViewOrderPage"/>
110+
<!-- Cancel order -->
111+
<actionGroup ref="CancelPendingOrderActionGroup" stepKey="cancelOrder"/>
112+
<waitForPageLoad stepKey="waitForOrderDetailsToLoad"/>
113+
<magentoCLI command="cron:run" stepKey="runCronAfterCancelingOrder"/>
114+
115+
<!-- Open My Account Page from Customer dropdown -->
116+
<actionGroup ref="StorefrontOpenMyAccountPageActionGroup" stepKey="goToMyAccountPage"/>
117+
118+
<!-- Goto Orders tab from Sidebar menu in Storefront page -->
119+
<actionGroup ref="StorefrontCustomerGoToSidebarMenu" stepKey="goToSidebarMenu">
120+
<argument name="menu" value="My Orders"/>
121+
</actionGroup>
122+
123+
<!-- Clicking View Order from My Orders Grid -->
124+
<actionGroup ref="StorefrontClickViewOrderLinkOnMyOrdersPageActionGroup" stepKey="clickViewOrder"/>
125+
126+
<!-- Clicking on Reorder link from Order Details Tab -->
127+
<click selector="{{StorefrontCustomerOrderViewSection.reorder}}" stepKey="clickReorder"/>
128+
129+
<!-- Reuse coupon code -->
130+
<click selector="{{DiscountSection.DiscountTab}}" stepKey="clickToDiscountTab"/>
131+
<fillField selector="{{DiscountSection.CouponInput}}" userInput="{{CatPriceRule.coupon_code}}" stepKey="fillCouponCode"/>
132+
<click selector="{{DiscountSection.ApplyCodeBtn}}" stepKey="applyCode"/>
133+
<waitForPageLoad stepKey="waitForPageLoad"/>
134+
<waitForText userInput='You used coupon code "{{CatPriceRule.coupon_code}}"' stepKey="waitForText2"/>
135+
<see selector="{{StorefrontMessagesSection.success}}" userInput='You used coupon code "{{CatPriceRule.coupon_code}}"' stepKey="seeSuccessMessage2"/>
136+
<waitForElementVisible selector="{{CheckoutCartSummarySection.discountAmount}}" time="30" stepKey="waitForElementDiscountVisible1"/>
137+
</test>
138+
</tests>

0 commit comments

Comments
 (0)